next_packet (Net::SSH::Transport::PacketStream)

         # File lib/net/ssh/transport/packet_stream.rb, line 79
     79:     def next_packet(mode=:nonblock)
     80:       case mode
     81:       when :nonblock then
     82:         fill if available_for_read?
     83:         poll_next_packet
     84:
     85:       when :block then
     86:         loop do
     87:           packet = poll_next_packet
     88:           return packet if packet
     89:
     90:           loop do
     91:             result = Net::SSH::Compat.io_select([self]) or next
     92:             break if result.first.any?
     93:           end
     94:
     95:           if fill <= 0
     96:             raise Net::SSH::Disconnect, "connection closed by remote host"
     97:           end
     98:         end
     99:
    100:       else
    101:         raise ArgumentError, "expected :block or :nonblock, got #{mode.inspect}"
    102:       end
    103:     end