about summary refs log tree commit homepage
path: root/lib/rainbows/fiber/io.rb
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2010-11-19 10:19:43 +0000
committerEric Wong <normalperson@yhbt.net>2010-11-19 14:44:21 -0800
commit00b854e37391322c05cc16115b245d855b4970be (patch)
treed6ad270abfa9352efbeba27c85d64de11210270a /lib/rainbows/fiber/io.rb
parent0f00424be24806791f2b253ddac6d35102842646 (diff)
downloadrainbows-00b854e37391322c05cc16115b245d855b4970be.tar.gz
Kgio 2.0.0 has a superior API and less likely to conflict or
blow up with other applications.  Unicorn 3.x requires Kgio 2.x,
too.
Diffstat (limited to 'lib/rainbows/fiber/io.rb')
-rw-r--r--lib/rainbows/fiber/io.rb22
1 files changed, 12 insertions, 10 deletions
diff --git a/lib/rainbows/fiber/io.rb b/lib/rainbows/fiber/io.rb
index a9803ee..e96f4de 100644
--- a/lib/rainbows/fiber/io.rb
+++ b/lib/rainbows/fiber/io.rb
@@ -53,7 +53,7 @@ class Rainbows::Fiber::IO
         when String
           buf = rv
         when :wait_writable
-          wait_writable
+          kgio_wait_writable
         end
       end while true
     else
@@ -61,7 +61,7 @@ class Rainbows::Fiber::IO
         (rv = @to_io.write_nonblock(buf)) == buf.bytesize and return
         buf = byte_slice(buf, rv..-1)
       rescue Errno::EAGAIN
-        wait_writable
+        kgio_wait_writable
       end while true
     end
   end
@@ -83,7 +83,7 @@ class Rainbows::Fiber::IO
         when :wait_readable
           return if expire && expire < Time.now
           expire ||= Time.now + G.kato
-          wait_readable
+          kgio_wait_readable
         else
           return rv
         end
@@ -94,7 +94,7 @@ class Rainbows::Fiber::IO
       rescue Errno::EAGAIN
         return if expire && expire < Time.now
         expire ||= Time.now + G.kato
-        wait_readable
+        kgio_wait_readable
       end while true
     end
   end
@@ -107,7 +107,7 @@ class Rainbows::Fiber::IO
         when nil
           raise EOFError, "end of file reached", []
         when :wait_readable
-          wait_readable
+          kgio_wait_readable
         else
           return rv
         end
@@ -116,7 +116,7 @@ class Rainbows::Fiber::IO
       begin
         return @to_io.read_nonblock(length, buf)
       rescue Errno::EAGAIN
-        wait_readable
+        kgio_wait_readable
       end while true
     end
   end
@@ -141,7 +141,9 @@ end
 require 'rainbows/fiber/io/methods'
 require 'rainbows/fiber/io/compat'
 Rainbows::Client.__send__(:include, Rainbows::Fiber::IO::Methods)
-Rainbows::Fiber::IO.__send__(:include, Rainbows::Fiber::IO::Compat)
-Rainbows::Fiber::IO.__send__(:include, Rainbows::Fiber::IO::Methods)
-Kgio.wait_readable = :wait_readable
-Kgio.wait_writable = :wait_writable
+class Rainbows::Fiber::IO
+  include Rainbows::Fiber::IO::Compat
+  include Rainbows::Fiber::IO::Methods
+  alias_method :wait_readable, :kgio_wait_readable
+  alias_method :wait_writable, :kgio_wait_writable
+end