void ObserveConnected() => Observe <ClientConnectionEventArgs>( e => Connection.Connected += e, e => Connection.Connected -= e, args => { Log.Info("Connected to EventStore at {EndPoint}", args.RemoteEndPoint); _connectInitially?.SetResult(); });
// // Points // public void Enqueue(TimelinePoint point) { lock (_queue) { if (_resumeQueue == null && _pendingDequeue != null) { _pendingDequeue.SetResult(point); _pendingDequeue = null; } else { _queue.Enqueue(point); } } }
// (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); } }
void KillExistingProcesses() { foreach (var existingProcess in GetExistingProcesses()) { try { existingProcess.Kill(); existingProcess.WaitForExit(); } catch (Exception error) { Debug.WriteLine("Failed to kill existing EventStore process", error); } } _killExistingProcesses.SetResult(); }
protected void CompleteTask(FlowResult result) => _lifetime.SetResult(result);
protected void CompleteTask(FlowResult result) => _taskSource.SetResult(result);