# File lib/net/ssh/connection/keepalive.rb, line 36
  def send_as_needed(readers, writers)
    return unless readers.nil? && writers.nil?
    return unless should_send?
    info { "sending keepalive #{@unresponded_keepalive_count}" }

    @unresponded_keepalive_count += 1
    @session.send_global_request("keepalive@openssh.com") { |success, response|
      debug { "keepalive response successful. Missed #{@unresponded_keepalive_count-1} keepalives" }
      @unresponded_keepalive_count = 0
    }
    @last_keepalive_sent_at = Time.now
    if keepalive_maxcount > 0 && @unresponded_keepalive_count > keepalive_maxcount
      error { "Timeout, server #{@session.host} not responding. Missed #{@unresponded_keepalive_count-1} timeouts." }
      @unresponded_keepalive_count = 0
      raise Net::SSH::Timeout, "Timeout, server #{@session.host} not responding."
    end
  end