Esempio n. 1
0
        private static void UnlockInstance(InstanceContext instanceContext)
        {
            ConcurrencyInstanceContextFacet concurrency = instanceContext.Concurrency;

            lock (instanceContext.ThisLock)
            {
                if (concurrency.HasWaiters)
                {
                    concurrency.DequeueWaiter().Signal();
                }
                else
                {
                    concurrency.Locked = false;
                }
            }
        }
Esempio n. 2
0
        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;
                }
            }
        }