using System.Threading.Tasks;
public static void Main()
await Task.Delay(TimeSpan.FromSeconds(2));
Console.WriteLine("Deadlocked?");
var asyncLock = new Cogs.Threading.ReentrantAsyncLock();
for (var i = 0; i < 1000; ++i)
await asyncLock.WithLockAsync(async () =>
await asyncLock.WithLockAsync(async () =>
await asyncLock.WithLockAsync(async () =>
Console.WriteLine("Not okay");