@Override
            public void produceRequest(
                    final RequestChannel channel,
                    final HttpContext context) throws HttpException, IOException {

                clientContext.setRoute(route);
                clientContext.setRequest(request);
                httpProcessor.process(request, entityProducer, clientContext);

                channel.sendRequest(request, entityProducer, context);
                if (entityProducer == null) {
                    messageCountDown.decrementAndGet();
                }
            }
Usually the last HTTP/1.1 request execution handler in the asynchronous
request execution chain that is responsible for execution of
request/response exchanges with the opposite endpoint.

@since 5.0
httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/HttpAsyncMainClientExec.java