From 9c0a7c670494fb55fb8ef98838fa0f53aab38d0d Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Thu, 10 Nov 2011 01:24:10 +0000 Subject: socket/pure_ruby: swap IO#wait for IO#select The return value of IO#wait is strange and confusing, relying on FIONREAD is a waste of time anyways. --- lib/mogilefs/socket/pure_ruby.rb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/mogilefs/socket/pure_ruby.rb b/lib/mogilefs/socket/pure_ruby.rb index 24cd5ca..df8dfb9 100644 --- a/lib/mogilefs/socket/pure_ruby.rb +++ b/lib/mogilefs/socket/pure_ruby.rb @@ -1,6 +1,5 @@ # -*- encoding: binary -*- # internal implementation details here, do not rely on them in your code -require "io/wait" class MogileFS::Socket < Socket include MogileFS::SocketCommon @@ -27,7 +26,7 @@ class MogileFS::Socket < Socket begin return read_nonblock(len, dst) rescue Errno::EAGAIN - wait(timeout) or unreadable_socket! + IO.select([self], nil, nil, timeout) or unreadable_socket! rescue EOFError return end while true @@ -38,7 +37,7 @@ class MogileFS::Socket < Socket rc = recv_nonblock(len, Socket::MSG_PEEK) return rc.empty? ? nil : dst.replace(rc) rescue Errno::EAGAIN - wait(timeout) or unreadable_socket! + IO.select([self], nil, nil, timeout) or unreadable_socket! rescue EOFError dst.replace("") return -- cgit v1.2.3-24-ge0c7