class Net::SSH::Multi::Session

Public Instance Methods

process(wait=nil, &block) click to toggle source
# File lib/knife-zero/net_ssh_multi_patch.rb, line 105
def process(wait=nil, &block)
  realize_pending_connections!
  wait = @connect_threads.any? ? 0 : wait

  return false unless preprocess(&block)

  readers = server_list.map { |s| s.readers }.flatten
  writers = server_list.map { |s| s.writers }.flatten

  readers, writers, = IO.select(readers, writers, nil, wait)

  ## >> Patch
  server_list.each { |server| server.keepalive_if_needed(readers, writers) }
  ## << Patch

  if readers
    return postprocess(readers, writers)
  else
    return true
  end
end