@Override
                    public void endStream() throws IOException {
                        channel.endStream();
                        if (messageCountDown.decrementAndGet() <= 0) {
                            asyncExecCallback.completed();
                        }
                    }
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