public void OnComplete() { foreach (PublishProcessorInner inner in ProcessorHelper.Terminate(ref subscribers, Terminated)) { inner.OnComplete(); } }
public void OnError(Exception e) { error = e; foreach (PublishProcessorInner inner in ProcessorHelper.Terminate(ref subscribers, Terminated)) { inner.OnError(e); } }
public void OnComplete() { Volatile.Write(ref done, true); foreach (var inner in ProcessorHelper.Terminate(ref subscribers, Terminated)) { Drain(inner); } }
public void OnError(Exception e) { error = e; Volatile.Write(ref done, true); foreach (var inner in ProcessorHelper.Terminate(ref subscribers, Terminated)) { Drain(inner); } }
public void OnComplete() { Volatile.Write(ref done, true); var a = ProcessorHelper.Terminate(ref subscribers, Terminated); foreach (PublisherCacheInner inner in a) { inner.Drain(); } }
public void OnError(Exception e) { error = e; Volatile.Write(ref done, true); var a = ProcessorHelper.Terminate(ref subscribers, Terminated); foreach (PublisherCacheInner inner in a) { inner.Drain(); } }
public void Cancel() { bp.Cancel(); SubscriptionHelper.Terminate(ref this.s); PublisherMergeInner[] a = ProcessorHelper.Terminate(ref subscribers, Terminated); if (a != Terminated) { foreach (PublisherMergeInner inner in a) { inner.Cancel(); } } }
bool CheckTerminated(bool d, bool empty, PublisherPublishInner[] a) { if (a == Terminated) { q.Clear(); return(true); } if (d) { Exception e = error; if (e != null) { q.Clear(); var b = ProcessorHelper.Terminate(ref subscribers, Terminated); foreach (var inner in b) { inner.OnError(e); } return(true); } else if (empty) { var b = ProcessorHelper.Terminate(ref subscribers, Terminated); foreach (var inner in b) { inner.OnComplete(); } return(true); } } return(false); }
public void Dispose() { ProcessorHelper.Terminate(ref subscribers, Terminated); arbiter.Cancel(); }