void complete() { if (decrementAndGet() == 0) { Throwable ex = errors.terminate(); if (ex != null) { downstream.onError(ex); } else { downstream.onComplete(); } } else { upstream.request(1); } }
@Override public void onError(Throwable t) { if (errors.addThrowable(t)) { if (!delayErrors) { set.dispose(); Throwable ex = errors.terminate(); if (ex != ExceptionHelper.TERMINATED) { downstream.onError(ex); } } else { onComplete(); } } else { RxJavaPlugins.onError(t); } }
void innerError(Disposable inner, Throwable error) { set.delete(inner); if (errors.addThrowable(error)) { if (!delayErrors) { set.dispose(); Throwable ex = errors.terminate(); if (ex != ExceptionHelper.TERMINATED) { downstream.onError(ex); } } else { complete(); } } else { RxJavaPlugins.onError(error); } }
void innerError(Disposable inner, Throwable error) { set.delete(inner); if (errors.addThrowable(error)) { if (!delayErrors) { set.dispose(); Throwable ex = errors.terminate(); if (ex != ExceptionHelper.TERMINATED) { downstream.onError(ex); } } else { complete(); } } else { RxJavaPlugins.onError(error); } }
@Override public void onError(Throwable t) { if (errors.addThrowable(t)) { if (!delayErrors) { set.dispose(); Throwable ex = errors.terminate(); if (ex != ExceptionHelper.TERMINATED) { downstream.onError(ex); } } else { onComplete(); } } else { RxJavaPlugins.onError(t); } }
void innerComplete(Disposable inner) { set.delete(inner); complete(); }
@Override protected void subscribeActual(Subscriber<? super Void> s) { sources.subscribe(new MergeSubscriber(s, delayErrors, maxConcurrency)); }
@Override public void onError(Throwable t) { innerError(this, t); }
@Override public void onError(Throwable t) { innerError(this, t); }
void innerComplete(Disposable inner) { set.delete(inner); complete(); }
@Override protected void subscribeActual(Subscriber<? super Void> s) { sources.subscribe(new MergeSubscriber(s, delayErrors, maxConcurrency)); }
@Override public void onComplete() { if (decrementAndGet() == 0) { Throwable ex = errors.terminate(); if (ex != null) { downstream.onError(ex); } else { downstream.onComplete(); } } }
MergeSubscriber(Subscriber<? super Void> downstream, boolean delayErrors, int maxConcurrency) { this.downstream = downstream; this.delayErrors = delayErrors; this.maxConcurrency = maxConcurrency; this.set = new CompositeDisposable(); this.errors = new AtomicThrowable(); this.lazySet(1); }
@Override public void onNext(Nono t) { getAndIncrement(); MergeInnerSubscriber inner = new MergeInnerSubscriber(); set.add(inner); t.subscribe(inner); }
MergeSubscriber(Subscriber<? super Void> downstream, boolean delayErrors, int maxConcurrency) { this.downstream = downstream; this.delayErrors = delayErrors; this.maxConcurrency = maxConcurrency; this.set = new CompositeDisposable(); this.errors = new AtomicThrowable(); this.lazySet(1); }
@Override public void onComplete() { innerComplete(this); } }
@Override public void onNext(Nono t) { getAndIncrement(); MergeInnerSubscriber inner = new MergeInnerSubscriber(); set.add(inner); t.subscribe(inner); }
@Override public void onComplete() { innerComplete(this); } }
void complete() { if (decrementAndGet() == 0) { Throwable ex = errors.terminate(); if (ex != null) { downstream.onError(ex); } else { downstream.onComplete(); } } else { upstream.request(1); } }
@Override public void onComplete() { if (decrementAndGet() == 0) { Throwable ex = errors.terminate(); if (ex != null) { downstream.onError(ex); } else { downstream.onComplete(); } } }