code: @Override
    public void onNext(final Integer integer) {
      while (!runningWorkers.isTerminated()) {
        try {
          final Tasklet tasklet = pendingTasklets.takeFirst(); // blocks when no tasklet exists
          runningWorkers.launchTasklet(tasklet); // blocks when no worker exists
        } catch (InterruptedException e) {
          LOG.log(Level.INFO, "Interrupted upon termination");
        }
      }
    }
docs: Repeatedly take a tasklet from the pending queue and launch it via RunningWorkers.