docs: public static <T> CompletableFuture<T> orTimeout(
  		CompletableFuture<T> future,
  		long timeout,
  		TimeUnit timeUnit,
  		Executor timeoutFailExecutor) {
  
  		if (!future.isDone()) {
  			final ScheduledFuture<?> timeoutFuture = Delayer.delay(
  				() -> timeoutFailExecutor.execute(new Timeout(future)), timeout, timeUnit);
  
  			future.whenComplete((T value, Throwable throwable) -> {
  				if (!timeoutFuture.isDone()) {
  					timeoutFuture.cancel(false);
  				}
  			});
  		}
  
  		return future;
  	}