From 00b854e37391322c05cc16115b245d855b4970be Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Fri, 19 Nov 2010 10:19:43 +0000 Subject: upgrade to Kgio 2.x and Unicorn 3.x 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. --- lib/rainbows/fiber/body.rb | 2 +- lib/rainbows/fiber/io.rb | 22 ++++++++++++---------- lib/rainbows/fiber/io/methods.rb | 4 ++-- lib/rainbows/fiber/rev/methods.rb | 4 ++-- 4 files changed, 17 insertions(+), 15 deletions(-) (limited to 'lib/rainbows/fiber') 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 -- cgit v1.2.3-24-ge0c7