code: public Future<?> submit(Runnable task)
      {
          Preconditions.checkState(isOpen.get(), "CloseableExecutorService is closed");
  
          InternalFutureTask<Void> futureTask = new InternalFutureTask<Void>(new FutureTask<Void>(task, null));
          executorService.execute(futureTask);
          return futureTask;
      }
docs: Submits a Runnable task for execution and returns a Future
  representing that task.  Upon completion, this task may be
  taken or polled.
  
  @param task the task to submit
  @return a future to watch the task