protected override IDisposable Run(IObserver <TSource> observer, IDisposable cancel, Action <IDisposable> setSink) { var sink = new ObserveOnObserver <TSource>(_scheduler, observer, cancel); setSink(sink); return(_source.SubscribeSafe(sink)); }
public IDisposable Subscribe(IObserver <T> observer) { var parent = new ObserveOnObserver(observer, scheduler, delayError); var d = source.Subscribe(parent); parent.OnSubscribe(d); return(parent); }
protected override IDisposable Run(IObserver <TSource> observer, IDisposable cancel, Action <IDisposable> setSink) { #if !NO_SYNCCTX if (_context != null) { var sink = new ObserveOnImpl(this, observer, cancel); setSink(sink); return(_source.Subscribe(sink)); } else #endif { var sink = new ObserveOnObserver <TSource>(_scheduler, observer, cancel); setSink(sink); return(_source.Subscribe(sink)); } }
protected override IDisposable Run(ObserveOnObserver <TSource> sink) => _source.SubscribeSafe(sink);
protected override void Run(ObserveOnObserver <TSource> sink) => sink.Run(_source);