code: public static <T> CompletableFuture<T> orTimeout(CompletableFuture<T> future, long timeout, TimeUnit timeUnit) {
  		return orTimeout(future, timeout, timeUnit, Executors.directExecutor());
  	}
docs: Times the given future out after the timeout.
  
  @param future to time out
  @param timeout after which the given future is timed out
  @param timeUnit time unit of the timeout
  @param <T> type of the given future
  @return The timeout enriched future