void tryTerminate() { if (wip.decrementAndGet() == 0) { Throwable ex = error.terminate(); if (ex == null) { actual.onComplete(); } else { actual.onError(ex); } } } }
void tryTerminate() { if (wip.decrementAndGet() == 0) { Throwable ex = error.terminate(); if (ex == null) { actual.onComplete(); } else { actual.onError(ex); } } } }
void disposeAll() { InnerSubscriber<?, ?>[] a = subscribers.get(); if (a != CANCELLED) { a = subscribers.getAndSet(CANCELLED); if (a != CANCELLED) { for (InnerSubscriber<?, ?> inner : a) { inner.dispose(); } Throwable ex = errs.terminate(); if (ex != null && ex != ExceptionHelper.TERMINATED) { RxJavaCommonPlugins.onError(ex); } } } }
@Override public void dispose() { if (!cancelled) { cancelled = true; if (disposeAll()) { Throwable ex = errors.terminate(); if (ex != null && ex != ExceptionHelper.TERMINATED) { RxJavaCommonPlugins.onError(ex); } } } }
@Override public void dispose() { if (!cancelled) { cancelled = true; if (disposeAll()) { Throwable ex = errors.terminate(); if (ex != null && ex != ExceptionHelper.TERMINATED) { RxJavaCommonPlugins.onError(ex); } } } }
@Override public void onComplete() { if (decrementAndGet() == 0) { Throwable ex = errors.terminate(); if (ex != null) { actual.onError(ex); } else { actual.onComplete(); } } else { if (maxConcurrency != Integer.MAX_VALUE) { s.request(1); } } }
@Override public void onComplete() { if (decrementAndGet() == 0) { Throwable ex = errors.terminate(); if (ex != null) { actual.onError(ex); } else { actual.onComplete(); } } else { if (maxConcurrency != Integer.MAX_VALUE) { s.request(1); } } }
@Override public void onComplete() { if (decrementAndGet() == 0) { Throwable ex = errors.terminate(); if (ex != null) { actual.onError(ex); } else { actual.onComplete(); } } }
@Override public void onComplete() { if (decrementAndGet() == 0) { Throwable ex = errors.terminate(); if (ex != null) { actual.onError(ex); } else { actual.onComplete(); } } }
@Override public void onComplete() { if (decrementAndGet() == 0) { Throwable ex = errors.terminate(); if (ex != null) { actual.onError(ex); } else { actual.onComplete(); } } }
@Override public void onComplete() { if (decrementAndGet() == 0) { Throwable ex = errors.terminate(); if (ex != null) { actual.onError(ex); } else { actual.onComplete(); } } }
boolean checkTerminate() { if (cancelled) { return true; } Throwable e = errors.get(); if (!delayErrors && (e != null)) { disposeAll(); e = errors.terminate(); if (e != ExceptionHelper.TERMINATED) { actual.onError(e); } return true; } return false; }
@Override public void onComplete() { if (decrementAndGet() == 0) { Throwable ex = error.get(); if (ex != null) { actual.onError(error.terminate()); } else { actual.onComplete(); } } }
@Override public void onComplete() { if (decrementAndGet() == 0) { Throwable ex = error.get(); if (ex != null) { actual.onError(error.terminate()); } else { actual.onComplete(); } } }
@Override public void onComplete() { if (decrementAndGet() == 0) { Throwable ex = error.get(); if (ex != null) { actual.onError(error.terminate()); } else { actual.onComplete(); } } }
boolean checkTerminate() { if (cancelled) { clearScalarQueue(); return true; } if (!delayErrors && errs.get() != null) { clearScalarQueue(); Throwable ex = errs.terminate(); if (ex != ExceptionHelper.TERMINATED) { actual.onError(ex); } return true; } return false; }
@Override public void onError(Throwable t) { if (errors.addThrowable(t)) { inner.cancel(); if (getAndIncrement() == 0) { actual.onError(errors.terminate()); } } else { RxJavaCommonPlugins.onError(t); } }
@Override public void innerError(Throwable e) { if (errors.addThrowable(e)) { s.cancel(); if (getAndIncrement() == 0) { actual.onError(errors.terminate()); } } else { RxJavaCommonPlugins.onError(e); } }
@Override public void innerNext(R value) { if (get() == 0 && compareAndSet(0, 1)) { actual.onNext(value); if (compareAndSet(1, 0)) { return; } actual.onError(errors.terminate()); } }
@Test public void isTerminated() { AtomicThrowable ex = new AtomicThrowable(); assertFalse(ex.isTerminated()); assertNull(ex.terminate()); assertTrue(ex.isTerminated()); } }