about summary refs log tree commit homepage
path: root/lib/rainbows/fiber
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2011-06-28 07:39:35 +0000
committerEric Wong <normalperson@yhbt.net>2011-06-28 07:39:35 +0000
commit905f0ff393629ddb4d70e3dc221b016128c47415 (patch)
treedd6689cac2e79d1b76b726a5c74c268d398d46cd /lib/rainbows/fiber
parent9684ed46e78dab1ae787fe135a3cec1c4490ddd6 (diff)
downloadrainbows-905f0ff393629ddb4d70e3dc221b016128c47415.tar.gz
Since kgio_wait_*able in kgio 2.5 takes an optional timeout
argument, we no longer have to load the extra "io/wait" module.
This saves us a small amount of some memory and also removes the
extra ioctl(FIONREAD) syscall IO#wait enforces.

Like IO#wait in Ruby 1.9.3dev, kgio_wait_readable may use
ppoll() to wait on high-numbered file descriptors as efficiently
as it waits on low-numbered descriptors.
Diffstat (limited to 'lib/rainbows/fiber')
-rw-r--r--lib/rainbows/fiber/coolio/methods.rb2
-rw-r--r--lib/rainbows/fiber/io/methods.rb2
2 files changed, 2 insertions, 2 deletions
diff --git a/lib/rainbows/fiber/coolio/methods.rb b/lib/rainbows/fiber/coolio/methods.rb
index 2e664ff..a327148 100644
--- a/lib/rainbows/fiber/coolio/methods.rb
+++ b/lib/rainbows/fiber/coolio/methods.rb
@@ -28,7 +28,7 @@ module Rainbows::Fiber::Coolio::Methods
     @w.disable
   end
 
-  def kgio_wait_readable
+  def kgio_wait_readable(timeout = nil)
     @r = Watcher.new(self, :r) unless defined?(@r)
     @r.enable unless @r.enabled?
     Fiber.yield
diff --git a/lib/rainbows/fiber/io/methods.rb b/lib/rainbows/fiber/io/methods.rb
index 9df0f01..e490818 100644
--- a/lib/rainbows/fiber/io/methods.rb
+++ b/lib/rainbows/fiber/io/methods.rb
@@ -29,7 +29,7 @@ module Rainbows::Fiber::IO::Methods
     super
   end
 
-  def kgio_wait_readable
+  def kgio_wait_readable(timeout = nil)
     fd = fileno
     @f = Fiber.current
     RD[fd] = self