lib/packet/packet_nbio.rb in packet-0.1.8 vs lib/packet/packet_nbio.rb in packet-0.1.9

- old
+ new

@@ -11,12 +11,18 @@ end def read_data(t_sock) sock_data = [] begin - while(t_data = t_sock.recv_nonblock((16*1024)-1)) - raise DisconnectError.new(t_sock,sock_data.join) if t_data.empty? - sock_data << t_data + if RUBY_PLATFORM =~ /linux/i + while(t_data = t_sock.read_nonblock((16*1024)-1)) + sock_data << t_data + end + else + while(t_data = t_sock.recv_nonblock((16*1024)-1)) + raise DisconnectError.new(t_sock,sock_data.join) if t_data.empty? + sock_data << t_data + end end rescue Errno::EAGAIN return sock_data.join rescue Errno::EWOULDBLOCK return sock_data.join