class Mysql2::EM::Client

def close(*args)

def close(*args)
  if @watch
    @watch.detach
  end
  super(*args)
end

def query(sql, opts={})

def query(sql, opts={})
  if ::EM.reactor_running?
    super(sql, opts.merge(:async => true))
    deferable = ::EM::DefaultDeferrable.new
    @watch = ::EM.watch(self.socket, Watcher, self, deferable)
    @watch.notify_readable = true
    deferable
  else
    super(sql, opts)
  end
end