Пример #1
0
            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();
                        }
                    }
                }));
            }
Пример #2
0
 public _(IObserver <TSource> observer, RefCount <TSource> parent)
     : base(observer)
 {
     this._parent = parent;
 }
Пример #3
0
 public _(RefCount <TSource> parent, IObserver <TSource> observer, IDisposable cancel)
     : base(observer, cancel)
 {
     _parent = parent;
 }