private void DequeueAndDispatch() { var inlet = _pendingQueue.Dequeue(); Push(_stage.Out, Grab(inlet)); if (AreUpstreamsClosed && !IsPending) { CompleteStage(); } else { TryPull(inlet); } }