code: public Promise<HttpResponse> send(HttpRequest request) {
  		SettablePromise<HttpResponse> promise = new SettablePromise<>();
  		this.promise = promise;
  		assert pool == null;
  		(pool = client.poolReadWrite).addLastNode(this);
  		poolTimestamp = eventloop.currentTimeMillis();
  		HttpHeaderValue connectionHeader = CONNECTION_KEEP_ALIVE_HEADER;
  		if (client.maxKeepAliveRequests != -1) {
  			if (++numberOfKeepAliveRequests >= client.maxKeepAliveRequests) {
  				connectionHeader = CONNECTION_CLOSE_HEADER;
  			}
  		}
  		request.addHeader(CONNECTION, connectionHeader);
  		ByteBuf buf = renderHttpMessage(request);
  		if (buf != null) {
  			writeBuf(buf);
  		} else {
  			writeHttpMessageAsChunkedStream(request);
  		}
  		request.recycle();
  		if (!isClosed()) {
  			try {
  				readHttpMessage();
  			} catch (ParseException e) {
  				closeWithError(e);
  			}
  		}
  		return promise;
  	}
docs: Sends the request, recycles it and closes connection in case of timeout
  
  @param request request for sending