docs: public static <T> boolean onNext(Subscriber<? super T> subscriber,
        T value,
        AtomicInteger wip,
        AtomicThrowable error) {
      if (wip.get() == 0 && wip.compareAndSet(0, 1)) {
        subscriber.onNext(value);
        if (wip.decrementAndGet() != 0) {
          Throwable ex = error.terminate();
          if (ex != null) {
            subscriber.onError(ex);
          } else {
            subscriber.onComplete();
          }
          return true;
        }
      }
      return false;
    }