docs: private static <T> ListenableFuture<T> submitAndAddQueueListener(
        ListeningExecutorService executorService, Callable<T> task,
        final BlockingQueue<Future<T>> queue) {
      final ListenableFuture<T> future = executorService.submit(task);
      future.addListener(new Runnable() {
        @Override public void run() {
          queue.add(future);
        }
      }, directExecutor());
      return future;
    }