internal void OtherwiseInternal(BasicCompletes continuationCompletes) { var continuation = new CompletesContinuation(continuationCompletes); RegisterFailureContinuation(continuation); if (OutcomeKnown.IsSet && HasFailedValue.Get()) { continuation.Run(this); RunContinuationsWhenReady(continuationCompletes); } }
protected abstract void RunContinuationsWhenReady(BasicCompletes completedContinuation);
internal void RecoverInternal(BasicCompletes continuationCompletes) { var continuation = new CompletesContinuation(continuationCompletes); RegisterExceptionContinuation(continuation); }
internal void AndThenInternal(BasicCompletes continuationCompletes) { var continuation = new CompletesContinuation(continuationCompletes); AndThenInternal(continuation); }
internal void OnResultAvailable(BasicCompletes lastRunContinuation) => RunContinuationsWhenReady(lastRunContinuation);
internal abstract void UpdateFailure(BasicCompletes previousContinuation);
internal abstract bool InnerInvoke(BasicCompletes completedCompletes);