Пример #1
0
        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);
        }
Пример #2
0
        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);
        }