@Override
    public final ContentChannel handleRequest(Request request, ResponseHandler responseHandler) {
        metricUtil.onHandle(request);
        if (request.getTimeout(TimeUnit.SECONDS) == null) {
            Duration timeout = getTimeout();
            if (timeout != null) {
                request.setTimeout(timeout.getSeconds(), TimeUnit.SECONDS);
            }
        }
        BufferedContentChannel content = new BufferedContentChannel();
        RequestTask command = new RequestTask(request, content, responseHandler);
        try {
            executor.execute(command);
        } catch (RejectedExecutionException e) {
            command.failOnOverload();
            throw new OverloadException("No available threads for " + getClass().getSimpleName(), e);
        } finally {
            logRejectedRequests();
        }
        return content;
    }
Handles a request by assigning a worker thread to it.

@throws OverloadException if thread pool has no available thread
container-core/src/main/java/com/yahoo/container/jdisc/ThreadedRequestHandler.java