module Redis::Connection::SocketMixin

def _write_to_socket(data)

def _write_to_socket(data)
  begin
    write_nonblock(data)
  rescue *NBIO_WRITE_EXCEPTIONS
    if IO.select(nil, [self], nil, @write_timeout)
      retry
    else
      raise Redis::TimeoutError
    end
  rescue *NBIO_READ_EXCEPTIONS
    if IO.select([self], nil, nil, @write_timeout)
      retry
    else
      raise Redis::TimeoutError
    end
  end
rescue EOFError
  raise Errno::ECONNRESET
end