Example #1
0
        public async Task PriorityLock_IsByPriority()
        {
            var mutex = new AsyncPriorityLock();
            var key   = await mutex.LockAsync();

            var wait1 = mutex.LockAsync(1);
            var wait2 = mutex.LockAsync(2);

            key.Dispose();

            var releasedWaiter = await Task.WhenAny(wait1.AsTask(), wait2.AsTask());

            Assert.AreEqual(wait2.AsTask(), releasedWaiter);
        }
Example #2
0
 internal LockRequest(AsyncPriorityLock mutex, Task <IDisposable> key, int priority)
 {
     _mutex    = mutex;
     _key      = key;
     _priority = priority;
 }