private static void UnlockInstance(InstanceContext instanceContext) { ConcurrencyInstanceContextFacet concurrency = instanceContext.Concurrency; lock (instanceContext.ThisLock) { if (concurrency.HasWaiters) { concurrency.DequeueWaiter().Signal(); } else { concurrency.Locked = false; } } }
private static void UnlockInstance(InstanceContext instanceContext) { ConcurrencyInstanceContextFacet resource = instanceContext.Concurrency; lock (instanceContext.ThisLock) { if (resource.HasWaiters) { IWaiter nextWaiter = resource.DequeueWaiter(); nextWaiter.Signal(); } else { //We have no pending Callouts and no new Messages to process resource.Locked = false; } } }