void ObserveClosed() => Observe <ClientClosedEventArgs>( e => Connection.Closed += e, e => Connection.Closed -= e, args => { Log.Info("EventStore connection closed ({Reason})", args.Reason); _connectInitially?.SetException(new Exception("EventStore connection closed while connecting initially")); });
void StopHost(Task runTask) { if (runTask.IsFaulted) { _startup.SetException(runTask.Exception); } _shutdown.TrySetResult(); }
// (Try)SetFromTask public static void SetFromTask <T>(this TaskSource <T> target, Task <T> source, CancellationToken candidateToken) { if (source.IsCanceled) { target.SetCanceled(candidateToken.IsCancellationRequested ? candidateToken : CancellationToken.None); } else if (source.Exception != null) { target.SetException(source.Exception); } else { target.SetResult(source.Result); } }
// (Try)SetFromResult public static void SetFromResult <T>(this TaskSource <T> target, Result <T> source, CancellationToken candidateToken) { if (source.IsValue(out var v, out var e)) { target.SetResult(v); } else if (e is OperationCanceledException && candidateToken.IsCancellationRequested) { target.SetCanceled(candidateToken); } else { target.SetException(e); } }
protected void CompleteTask(Exception error) => _lifetime.SetException(error);
protected void CompleteTask(Exception error) => _taskSource.SetException(error);