diff options
author | Eric Wong <normalperson@yhbt.net> | 2010-11-02 12:32:23 -0700 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2010-11-05 18:36:08 -0700 |
commit | 42747db815ad668b20849afb2a9dcdd1319713ae (patch) | |
tree | 6dcd7cb02f11bcfad40de6c72a9a6570df71c4d7 /lib/rainbows/fiber/base.rb | |
parent | 427ef4a2953a4b2d34f7dd89566a0cb5ee6e734d (diff) | |
download | rainbows-42747db815ad668b20849afb2a9dcdd1319713ae.tar.gz |
Errno::EAGAIN is still a problem under Ruby 1.9.2, so try harder to avoid it and use kgio methods. Even when 1.9.3 is available, kgio will still be faster as exceptions are slower than normal return values.
Diffstat (limited to 'lib/rainbows/fiber/base.rb')
-rw-r--r-- | lib/rainbows/fiber/base.rb | 13 |
1 files changed, 0 insertions, 13 deletions
diff --git a/lib/rainbows/fiber/base.rb b/lib/rainbows/fiber/base.rb index b7c4ce5..69bf5d9 100644 --- a/lib/rainbows/fiber/base.rb +++ b/lib/rainbows/fiber/base.rb @@ -56,19 +56,6 @@ module Rainbows::Fiber::Base max.nil? || max > (now + 1) ? 1 : max - now end - def wait_headers_readable(client) - io = client.to_io - expire = nil - begin - return io.recv_nonblock(1, Socket::MSG_PEEK) - rescue Errno::EAGAIN - return if expire && expire < Time.now - expire ||= Time.now + G.kato - client.wait_readable - retry - end - end - def process(client) G.cur += 1 process_client(client) |