class Mysql2::EM::Client
def close(*args)
def close(*args) @watch.detach if @watch && @watch.watching? 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(socket, Watcher, self, deferable) @watch.notify_readable = true deferable else super(sql, opts) end end