Beispiel #1
0
        void ObserveConnected() =>
        Observe <ClientConnectionEventArgs>(
            e => Connection.Connected += e,
            e => Connection.Connected -= e,
            args =>
        {
            Log.Info("Connected to EventStore at {EndPoint}", args.RemoteEndPoint);

            _connectInitially?.SetResult();
        });
Beispiel #2
0
        //
        // Points
        //

        public void Enqueue(TimelinePoint point)
        {
            lock (_queue)
            {
                if (_resumeQueue == null && _pendingDequeue != null)
                {
                    _pendingDequeue.SetResult(point);
                    _pendingDequeue = null;
                }
                else
                {
                    _queue.Enqueue(point);
                }
            }
        }
Beispiel #3
0
    // (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);
        }
    }
Beispiel #4
0
    // (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);
        }
    }
Beispiel #5
0
        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();
        }
Beispiel #6
0
 protected void CompleteTask(FlowResult result) =>
 _lifetime.SetResult(result);
Beispiel #7
0
 protected void CompleteTask(FlowResult result) =>
 _taskSource.SetResult(result);