From 40c22b3f0a2ace6e4b51a39624ac5ed5ee3d0162 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Mon, 27 Dec 2010 03:56:30 +0000 Subject: fiber/*: more efficient keepalive_timeout expiry We can use the same interface as Rainbows::Fiber.sleep to avoid blindly waking up readers at ever scheduler invocation. --- lib/rainbows/fiber/io.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/rainbows/fiber/io.rb') diff --git a/lib/rainbows/fiber/io.rb b/lib/rainbows/fiber/io.rb index e96f4de..94996ee 100644 --- a/lib/rainbows/fiber/io.rb +++ b/lib/rainbows/fiber/io.rb @@ -82,7 +82,7 @@ class Rainbows::Fiber::IO case rv = @to_io.kgio_tryread(16384, buf) when :wait_readable return if expire && expire < Time.now - expire ||= Time.now + G.kato + expire ||= read_expire kgio_wait_readable else return rv @@ -93,7 +93,7 @@ class Rainbows::Fiber::IO return @to_io.read_nonblock(16384, buf) rescue Errno::EAGAIN return if expire && expire < Time.now - expire ||= Time.now + G.kato + expire ||= read_expire kgio_wait_readable end while true end -- cgit v1.2.3-24-ge0c7