public override void PostStop() { if (_state.HasValue) { _stage._close(_state.Value); } }
private void ErrorHandler(Exception ex) { var directive = _decider.Value(ex); switch (directive) { case Directive.Stop: OnResourceReady(s => _source._close(s)); FailStage(ex); break; case Directive.Resume: OnPull(); break; case Directive.Restart: RestartState(); break; default: throw new ArgumentOutOfRangeException(); } }