public Task WakeUp(IAdapterToStageMessage msg) { var p = new TaskCompletionSource <NotUsed>(); _upstreamCallback(new Tuple <IAdapterToStageMessage, TaskCompletionSource <NotUsed> >(msg, p)); return(p.Task); }
private void SendMessage(IAdapterToStageMessage msg, bool handleCancelled = true) { Send(() => { _stageWithCallback.WakeUp(msg).Wait(_writeTimeout); if (_downstreamStatus.Value is Canceled && handleCancelled) { //Publisher considered to be terminated at earliest convenience to minimize messages sending back and forth _isPublisherAlive = false; throw PublisherClosedException; } }); }
public void WakeUp(IAdapterToStageMessage msg) => _callback(msg);