@Override
    public boolean setTimeout(long time, TimeUnit unit) {
        if (isDone()) {
            return false;
        }
        final ServiceRequestContext context = request().requestContext();
        if (time <= NO_TIMEOUT) {
            // prevent the request from ever being timed out
            context.clearRequestTimeout();
        } else {
            context.setRequestTimeoutMillis(unit.toMillis(time));
        }
        return true;
    }
Set/update the suspend timeout.
<p>
The new suspend timeout values override any timeout value previously specified.
The asynchronous response must be still in a {@link #isSuspended() suspended} state
for this method to succeed.
Note that, extending the suspend period by setting a new suspend time-out from inside
{@link TimeoutHandler} is not supported.
</p>

@param time suspend timeout value in the give time {@code unit}. Value lower
            or equal to {@value #NO_TIMEOUT} causes the context to suspend indefinitely.
@param unit suspend timeout value time unit.
@return {@code true} if the suspend time out has been set, returns {@code false} in case
        the request processing is not in the {@link #isSuspended() suspended} state.
resteasy/src/main/java/com/linecorp/armeria/server/resteasy/ResteasyAsynchronousResponseImpl.java