public void UpstreamNext(T value)
            {
                if (IsDisposed())
                {
                    return;
                }
                var o = default(IObservableSource <R>);

                try
                {
                    o = ValidationHelper.RequireNonNullRef(mapper(value), "The mapper returned a null IObservableSource");
                }
                catch (Exception ex)
                {
                    base.Dispose();
                    OnError(ex);
                    return;
                }

                var inner = new InnerSignalObserver <R>(this);

                observers.Offer(inner);

                if (!IsDisposed())
                {
                    o.Subscribe(inner);
                }
                Drain();
            }
            public void UpstreamNext(T value)
            {
                if (IsDisposed())
                {
                    return;
                }
                var o = default(IObservable <R>);

                try
                {
                    o = mapper(value);
                }
                catch (Exception ex)
                {
                    base.Dispose();
                    OnError(ex);
                    return;
                }

                var inner = new InnerObserver <R>(this);

                observers.Offer(inner);

                if (!IsDisposed())
                {
                    inner.OnSubscribe(o.Subscribe(inner));
                }
                Drain();
            }
 public override void OnNext(T value)
 {
     queue.Offer(value);
     DrainBackpressure();
 }
Пример #4
0
 public override void OnNext(T value)
 {
     queue.Offer(value);
     Schedule();
 }