code: public static CompletableFuture<Void> nonBlockingShutdown(long timeout, TimeUnit unit, ExecutorService... executorServices) {
  		return CompletableFuture.supplyAsync(
  			() -> {
  				gracefulShutdown(timeout, unit, executorServices);
  				return null;
  			});
  	}
docs: Shuts the given {@link ExecutorService} down in a non-blocking fashion. The shut down will
  be executed by a thread from the common fork-join pool.
  
  <p>The executor services will be shut down gracefully for the given timeout period. Afterwards
  {@link ExecutorService#shutdownNow()} will be called.
  
  @param timeout before {@link ExecutorService#shutdownNow()} is called
  @param unit time unit of the timeout
  @param executorServices to shut down
  @return Future which is completed once the {@link ExecutorService} are shut down