Microsoft.AspNetCore.SignalR.Messaging.ScaleoutStream.DrainPreviousQueue C# (CSharp) Method

DrainPreviousQueue() private method

private DrainPreviousQueue ( ) : Task
return Task
        private Task DrainPreviousQueue()
        {
            // If the tcs is null or complete then create a new one
            if (_taskCompletionSource == null ||
                _taskCompletionSource.Task.IsCompleted)
            {
                _taskCompletionSource = new TaskCompletionSource<object>();
            }

            if (_queue != null)
            {
                // Drain the queue when the new queue is open
                return _taskCompletionSource.Task.Then((q, t) => Drain(q, t), _queue, _logger);
            }

            // Nothing to drain
            return _taskCompletionSource.Task;
        }