public <T> CompletableFuture<T> submit(final Supplier<T> supplier) {
		requireNonNull(supplier, "A non-null supplier expected");
		CompletableFuture<T> future = null;
		if (isRunning.get()) {
			future = supplyAsync(supplier, executor);
		} else {
			future = new CompletableFuture<>();
			future.completeExceptionally(new IllegalStateException("This task runner is not active"));
		}
		return future;		
	}
public < T > CompletableFuture < T > submit ( final Supplier < T > supplier ) { requireNonNull ( supplier , "A non-null supplier expected" ) ; CompletableFuture < T > future = null ; if ( isRunning . get ( ) ) { future = supplyAsync ( supplier , executor ) ; } else { future = new CompletableFuture < > ( ) ; future . completeExceptionally ( new IllegalStateException ( "This task runner is not active" ) ) ; } return future ; }
Submits a new task for execution to the pool of threads managed by this class.
@param <T> - specific type of supplier
@param supplier - a function returning the value to be used to complete the returned {@link CompletableFuture}
@return a {@link CompletableFuture} that the caller can use to track the execution of the task and to register a callback function.