public void Wait_QueuesWork() { var l = new AsyncLock(); var l1 = false; var l2 = false; l.Wait(() => { l.Wait(() => { Assert.IsTrue(l1); l2 = true; }); l1 = true; }); Assert.IsTrue(l2); }
public void Wait_Fail() { var l = new AsyncLock(); var ex = new Exception(); try { l.Wait(() => { throw ex; }); Assert.Fail(); } catch (Exception e) { Assert.AreSame(ex, e); } // has faulted; should not run l.Wait(() => { Assert.Fail(); }); }