class ElasticAPM::Transport::Connection

def connect_unless_connected

rubocop:disable Metrics/MethodLength
def connect_unless_connected
  @mutex.synchronize do
    return true if @connected
    debug 'Opening new request'
    reset!
    @rd, @wr = ModdedIO.pipe
    enable_compression! if @config.http_compression?
    perform_request_in_thread
    wait_for_connection
    schedule_closing if @config.api_request_time
    append(@metadata)
    true
  end
end