private IEnumerator <Task> AcquireOneInterrupted(Process p, object data) { IResource r = (IResource)data; Task t = new InterruptTask(p.Simulation); p.WaitOnTask(t, t.Priority + 10); Assert.AreEqual(1, t.BlockCount); yield return(r.Acquire(p)); // The InterruptTask should interrupt us here. Assert.IsTrue(p.Interrupted); yield return(p.Delay(3)); // After a delay, the interrupt flag should be cleared. Assert.IsTrue(!p.Interrupted); yield break; }