module WebMockHTTPClients

def do_request_async(method, uri, query, body, extheader)

def do_request_async(method, uri, query, body, extheader)
  clear_thread_variables
  req = create_request(method, uri, query, body, extheader)
  request_signature = build_request_signature(req)
  webmock_request_signatures << request_signature
  if webmock_responses[request_signature] || WebMock.net_connect_allowed?(request_signature.uri)
    conn = super
    conn.async_thread[WEBMOCK_HTTPCLIENT_REQUEST_SIGNATURES] = Thread.current[WEBMOCK_HTTPCLIENT_REQUEST_SIGNATURES]
    conn.async_thread[WEBMOCK_HTTPCLIENT_RESPONSES] = Thread.current[WEBMOCK_HTTPCLIENT_RESPONSES]
    conn
  else
    raise WebMock::NetConnectNotAllowedError.new(request_signature)
  end
end