about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/rainbows/fiber/rev/methods.rb11
-rw-r--r--lib/rainbows/fiber_pool.rb2
2 files changed, 10 insertions, 3 deletions
diff --git a/lib/rainbows/fiber/rev/methods.rb b/lib/rainbows/fiber/rev/methods.rb
index 5f4367e..64108a9 100644
--- a/lib/rainbows/fiber/rev/methods.rb
+++ b/lib/rainbows/fiber/rev/methods.rb
@@ -44,5 +44,12 @@ module Rainbows::Fiber::Rev::Methods
   end
 end
 
-Rainbows::Fiber::IO.__send__(:include, Rainbows::Fiber::Rev::Methods)
-Rainbows::Client.__send__(:include, Rainbows::Fiber::Rev::Methods)
+[
+  Rainbows::Fiber::IO,
+  Rainbows::Client,
+  # the next two trigger autoload, ugh, oh well...
+  Rainbows::Fiber::IO::Socket,
+  Rainbows::Fiber::IO::Pipe
+].each do |klass|
+  klass.__send__(:include, Rainbows::Fiber::Rev::Methods)
+end
diff --git a/lib/rainbows/fiber_pool.rb b/lib/rainbows/fiber_pool.rb
index c0d2ba7..18f43de 100644
--- a/lib/rainbows/fiber_pool.rb
+++ b/lib/rainbows/fiber_pool.rb
@@ -30,7 +30,7 @@ module Rainbows
         schedule do |l|
           fib = pool.shift or break # let another worker process take it
           if io = l.kgio_tryaccept
-            fib.resume(Fiber::IO.new(io, fib))
+            fib.resume(io)
           else
             pool << fib
           end