# File lib/tramp/evented_mysql.rb, line 125
  def execute sql, response = nil, cblk = nil, eblk = nil, &blk
    cblk ||= blk

    begin
      unless @processing or !@connected
        # begin
        #   log 'mysql ping', @mysql.ping
        #   # log 'mysql stat', @mysql.stat
        #   # log 'mysql errno', @mysql.errno
        # rescue
        #   log 'mysql ping failed'
        #   @@queue << [response, sql, blk]
        #   return close
        # end

        @processing = true

        log 'mysql sending', sql
        @mysql.send_query(sql)
      else
        @@queue << [response, sql, cblk, eblk]
        return
      end
    rescue Mysql::Error => e
      log 'mysql error', e.message
      if DisconnectErrors.include? e.message
        @@queue << [response, sql, cblk, eblk]
        return close
      else
        raise e
      end
    end

    log 'queuing', response, sql
    @current = [Time.now, response, sql, cblk, eblk]
  end