public void setTimeout(long timeout, TimeUnit unit) {
        synchronized (monitor) {
            this.timeout = unit.toMillis(timeout);
            if (timeoutManager != null) {
                timeoutManager.scheduleTimeout(this);
            }
        }
    }
<p>Sets the allocated time that this Request is allowed to exist before the corresponding call to {@link
ResponseHandler#handleResponse(Response)} must have been made. If no timeout value is assigned to a Request,
there will be no timeout.</p>

<p>Once the allocated time has expired, unless the {@link ResponseHandler} has already been called, the {@link
RequestHandler#handleTimeout(Request, ResponseHandler)} method is invoked.</p>

<p>Calls to {@link #isCancelled()} return <em>true</em> if timeout has been exceeded.</p>

@param timeout The allocated amount of time.
@param unit    The time unit of the <em>timeout</em> argument.
@see #getTimeout(TimeUnit)
@see #timeRemaining(TimeUnit)
jdisc_core/src/main/java/com/yahoo/jdisc/Request.java