diff --git a/ChangeLog b/ChangeLog index d12bec132c..578fc66dd1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -171,6 +171,11 @@ Mon Dec 22 18:00:36 2008 Hidetoshi NAGAI * ext/tk/tcltklib.c: fix wrong flag value. +Mon Dec 22 15:15:58 2008 Yukihiro Matsumoto + + * lib/net/protocol.rb (Net::BufferedIO#rbuf_fill): avoid calling + read_nonblock in rescue. use retry instead. + Mon Dec 22 14:35:59 2008 Yukihiro Matsumoto * string.c (rb_external_str_new_with_enc): set ASCII-8BIT if diff --git a/lib/net/protocol.rb b/lib/net/protocol.rb index 3f6f416bab..e26c849338 100644 --- a/lib/net/protocol.rb +++ b/lib/net/protocol.rb @@ -135,7 +135,7 @@ module Net # :nodoc: @rbuf << @io.read_nonblock(BUFSIZE) rescue Errno::EWOULDBLOCK if IO.select([@io], nil, nil, @read_timeout) - @rbuf << @io.read_nonblock(BUFSIZE) + retry else raise Timeout::TimeoutError end