示例#1
0
        protected Task CreateErrorTask(string message)
        {
            var ex = new InvalidOperationException(message);

            Log.WriteMessageError(Logger, ex);
            return(Task.FromException(ex));
        }
示例#2
0
        public override Task CompleteAsync()
        {
            _call.EnsureNotDisposed();

            using (_call.StartScope())
            {
                Log.CompletingClientStream(Logger);

                lock (WriteLock)
                {
                    // Pending writes need to be awaited first
                    if (IsWriteInProgressUnsynchronized)
                    {
                        var ex = new InvalidOperationException("Can't complete the client stream writer because the previous write is in progress.");
                        Log.CompleteClientStreamError(Logger, ex);
                        return(Task.FromException(ex));
                    }

                    // Notify that the client stream is complete
                    CompleteTcs.TrySetResult(true);
                    _completeCalled = true;
                }
            }

            return(Task.CompletedTask);
        }