docs: public void setTimeout(ScheduledExecutorService timeoutExecutor, long timeout, TimeUnit unit) {
        cancelTimeoutTask();
        ScheduledFuture<Void> timeoutFuture = timeoutExecutor.schedule(this, timeout, unit);
        setTimeoutFuture(timeoutFuture);
     }