@Override public boolean isTerminated() { return isCancelled(); }
@Override public int size() { return isEmpty() ? 0 : 1; } }
@Override public void request(long n) { super.request(n); if (n > 0L) { s.request(Long.MAX_VALUE); } }
Objects.requireNonNull(value); for (; ; ) { int s = getState(); if (s == SDS_NO_REQUEST_HAS_VALUE || s == SDS_HAS_REQUEST_HAS_VALUE) { return; setValue(value); // make sure poll sees it outputFused = OUTPUT_HAS_VALUE; Subscriber<? super O> a = downstream(); a.onNext(value); if (getState() != SDS_HAS_REQUEST_HAS_VALUE) { a.onComplete(); setValue(value); if (compareAndSetState(SDS_NO_REQUEST_NO_VALUE, SDS_NO_REQUEST_HAS_VALUE)) { return;
@Override public void cancel() { s.cancel(); super.cancel(); }
@Override public void subscribe(Subscriber<? super T> s) { DeferredScalarSubscriber<T, T> sds = new DeferredScalarSubscriber<>(s); s.onSubscribe(sds); if (sds.isCancelled()) { return; } future.whenComplete((v, e) -> { if (e != null) { s.onError(e); } else if (v != null) { sds.complete(v); } else { s.onError(new NullPointerException("The future produced a null value")); } }); } }
@Override public void request(long n) { if (SubscriptionHelper.validate(n)) { for (; ; ) { int s = getState(); if (s == SDS_HAS_REQUEST_NO_VALUE || s == SDS_HAS_REQUEST_HAS_VALUE) { return; } if (s == SDS_NO_REQUEST_HAS_VALUE) { if (compareAndSetState(SDS_NO_REQUEST_HAS_VALUE, SDS_HAS_REQUEST_HAS_VALUE)) { Subscriber<? super O> a = downstream(); a.onNext(value); a.onComplete(); } return; } if (compareAndSetState(SDS_NO_REQUEST_NO_VALUE, SDS_HAS_REQUEST_NO_VALUE)) { return; } } } }
@Override public void subscribe(Subscriber<? super T> s) { DeferredScalarSubscriber<T, T> sds = new DeferredScalarSubscriber<>(s); s.onSubscribe(sds); T v; try { if (unit != null) { v = future.get(timeout, unit); } else { v = future.get(); } } catch (InterruptedException | ExecutionException | TimeoutException ex) { s.onError(ex); return; } sds.complete(v); }
@Override public final void onComplete() { if (hasValue) { complete(accumulator); } else { super.onComplete(); } }
@Override public void cancel() { super.cancel(); s.cancel(); }
@Override public void subscribe(Subscriber<? super T> s) { DeferredScalarSubscriber<T, T> sds = new DeferredScalarSubscriber<>(s); s.onSubscribe(sds); if (sds.isCancelled()) { return; } T t; try { t = callable.call(); } catch (Throwable e) { ExceptionHelper.throwIfFatal(e); s.onError(ExceptionHelper.unwrap(e)); return; } if (t == null) { s.onError(new NullPointerException("The callable returned null")); return; } sds.complete(t); }
DeferredScalarSubscriber<R, R> sds = new DeferredScalarSubscriber<>(s); sds.complete(r);
@Override public final void onComplete() { if (hasValue) { complete(accumulator); } else { super.onComplete(); } }
@Override public void cancel() { super.cancel(); s.cancel(); } }
@Override public void request(long n) { super.request(n); s.request(n); }
@Override public void cancel() { super.cancel(); s.cancel(); }
@Override public void request(long n) { super.request(n); if (n > 0L) { s.request(Long.MAX_VALUE); } }
@Override public final void cancel() { super.cancel(); s.cancel(); } }
@Override public void cancel() { super.cancel(); s.cancel(); }
@Override public void cancel() { super.cancel(); s.cancel(); }