internal void Reject(Exception reason) { Result = Handle(reason); if (Result.IsSuccessful) { Accept(Result.Value); } else { State = AsyncOperationState.Failed; while (_continuations.TryDequeue(out var continuation)) { continuation._complete(Result); } if (IsDone) { Async.Throw(reason); } lock (this) _otherwiseClause?.Accept(reason); } }