about summary refs log tree commit homepage
path: root/lib/rainbows/fiber
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
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')
-rw-r--r--lib/rainbows/fiber/body.rb2
-rw-r--r--lib/rainbows/fiber/io.rb22
-rw-r--r--lib/rainbows/fiber/io/methods.rb4
-rw-r--r--lib/rainbows/fiber/rev/methods.rb4
4 files changed, 17 insertions, 15 deletions
diff --git a/lib/rainbows/fiber/body.rb b/lib/rainbows/fiber/body.rb
index c6c4484..f3299dc 100644
--- a/lib/rainbows/fiber/body.rb
+++ b/lib/rainbows/fiber/body.rb
@@ -18,7 +18,7 @@ module Rainbows::Fiber::Body # :nodoc:
       begin
         offset += (n = sock.sendfile_nonblock(body, offset, count))
       rescue Errno::EAGAIN
-        client.wait_writable
+        client.kgio_wait_writable
         retry
       rescue EOFError
         break
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
diff --git a/lib/rainbows/fiber/io/methods.rb b/lib/rainbows/fiber/io/methods.rb
index 941a68c..6c4d44d 100644
--- a/lib/rainbows/fiber/io/methods.rb
+++ b/lib/rainbows/fiber/io/methods.rb
@@ -25,7 +25,7 @@ module Rainbows::Fiber::IO::Methods
     super
   end
 
-  def wait_readable
+  def kgio_wait_readable
     fd = fileno
     @f = Fiber.current
     RD[fd] = self
@@ -33,7 +33,7 @@ module Rainbows::Fiber::IO::Methods
     RD[fd] = nil
   end
 
-  def wait_writable
+  def kgio_wait_writable
     fd = fileno
     @f = Fiber.current
     WR[fd] = self
diff --git a/lib/rainbows/fiber/rev/methods.rb b/lib/rainbows/fiber/rev/methods.rb
index c09268f..4345bdb 100644
--- a/lib/rainbows/fiber/rev/methods.rb
+++ b/lib/rainbows/fiber/rev/methods.rb
@@ -21,14 +21,14 @@ module Rainbows::Fiber::Rev::Methods
     super
   end
 
-  def wait_writable
+  def kgio_wait_writable
     @w = Watcher.new(self, :w) unless defined?(@w)
     @w.enable unless @w.enabled?
     Fiber.yield
     @w.disable
   end
 
-  def wait_readable
+  def kgio_wait_readable
     @r = Watcher.new(self, :r) unless defined?(@r)
     @r.enable unless @r.enabled?
     KATO << Fiber.current