public InboundMessageDispatch Dequeue()

in src/NMS.AMQP/Util/PriorityMessageQueue.cs [141:167]


        public InboundMessageDispatch Dequeue(int timeout)
        {
            using(syncRoot.Lock())
            {
                while (timeout != 0 && IsEmpty && !disposed)
                {
                    if (timeout == -1)
                    {
                        syncRoot.Wait();
                    }
                    else
                    {
                        long start = DateTime.UtcNow.Ticks / 10_000L;
                        syncRoot.Wait(timeout);
                        timeout = Math.Max(timeout + (int) (start - DateTime.UtcNow.Ticks / 10_000L), 0);
                    }
                }

                if (IsEmpty || disposed)
                {
                    return null;
                }

                return RemoveFirst();
            }
            
        }