public IDisposable Run(RefCount <TSource> parent) { var subscription = parent._source.SubscribeSafe(this); lock (parent._gate) { if (++parent._count == 1) { parent._connectableSubscription = parent._source.Connect(); } } return(Disposable.Create(() => { subscription.Dispose(); lock (parent._gate) { if (--parent._count == 0) { parent._connectableSubscription.Dispose(); } } })); }
public _(IObserver <TSource> observer, RefCount <TSource> parent) : base(observer) { this._parent = parent; }
public _(RefCount <TSource> parent, IObserver <TSource> observer, IDisposable cancel) : base(observer, cancel) { _parent = parent; }