RavenFS.Synchronization.SynchronizationQueue.TryDequePendingSynchronization C# (CSharp) Method

TryDequePendingSynchronization() public method

public TryDequePendingSynchronization ( string destination, SynchronizationWorkItem &workItem ) : bool
destination string
workItem SynchronizationWorkItem
return bool
		public bool TryDequePendingSynchronization(string destination, out SynchronizationWorkItem workItem)
		{
			var readerWriterLockSlim = pendingRemoveLocks.GetOrAdd(destination, new ReaderWriterLockSlim());
			readerWriterLockSlim.EnterReadLock();
			try
			{
				ConcurrentQueue<SynchronizationWorkItem> pendingForDestination;
				if (pendingSynchronizations.TryGetValue(destination, out pendingForDestination) == false)
				{
					workItem = null;
					return false;
				}

				return pendingForDestination.TryDequeue(out workItem);
			}
			finally
			{
				readerWriterLockSlim.ExitReadLock();
			}
		}