internal void OnFlushAsyncCompleted(Action continuation) { Action awaitable; bool doubleCompletion; lock (_sync) { awaitable = _writerAwaitable.OnCompleted(continuation, out doubleCompletion); } if (doubleCompletion) { Reader.Complete(ThrowHelper.CreateInvalidOperationException_NoConcurrentOperation()); } TrySchedule(_writerScheduler, awaitable); }
void IPipeAwaiter <ReadResult> .OnCompleted(Action continuation) { Action awaitable; bool doubleCompletion; lock (_sync) { awaitable = _readerAwaitable.OnCompleted(continuation, out doubleCompletion); } if (doubleCompletion) { Writer.Complete(ThrowHelper.CreateInvalidOperationException_NoConcurrentOperation()); } TrySchedule(_readerScheduler, awaitable); }