public void Dispose_FaultsAwaiters() { var turnstile = new Turnstile(); using (var cts = new CancellationTokenSource()) { var awaiters = new[] { turnstile.WaitAsync(), turnstile.WaitAsync(cts.Token), turnstile.WaitAsync(), turnstile.WaitAsync() }; cts.Cancel(); turnstile.Dispose(); TaskAssert.Faulted <ObjectDisposedException>(awaiters[0]); TaskAssert.Cancelled(awaiters[1]); foreach (var awaiter in awaiters.Skip(2)) { TaskAssert.Faulted <ObjectDisposedException>(awaiter); } } }
public void WaitAsync_Disposed_ThrowsObjectDisposedException() { var turnstile = new Turnstile(); turnstile.Dispose(); TaskAssert.Faulted <ObjectDisposedException>(turnstile.WaitAsync()); }
/// <inheritdoc /> protected override void Dispose(bool ADisposing) { if (ADisposing) { // Fault all remaining awaiters. FWaiting.Dispose(); } base.Dispose(ADisposing); }