# File lib/active_record/connection_adapters/em_mysql2_adapter.rb, line 44
      def query(sql, opts={})
        if EM.reactor_running?
          super(sql, opts.merge(:async => true))
          deferable = ::EM::DefaultDeferrable.new
          ::EM.watch(self.socket, Watcher, self, deferable).notify_readable = true
          fiber = Fiber.current
          deferable.callback do |result|
            fiber.resume(result)
          end
          deferable.errback do |err|
            fiber.resume(err)
          end
          Fiber.yield
        else
          super(sql, opts)
        end
      end