From ad821f70a2488a91f2be1ac53cb2e64f50743989 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 28 Sep 2010 17:40:01 -0700 Subject: start using kgio library It removes the burden of byte slicing and setting file descriptor flags. In some cases, we can remove unnecessary peeraddr calls, too. --- lib/rainbows/fiber/rev.rb | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'lib/rainbows/fiber/rev.rb') diff --git a/lib/rainbows/fiber/rev.rb b/lib/rainbows/fiber/rev.rb index 632b562..2c1abb7 100644 --- a/lib/rainbows/fiber/rev.rb +++ b/lib/rainbows/fiber/rev.rb @@ -54,7 +54,6 @@ module Rainbows::Fiber include Rainbows include Rainbows::Const include Rainbows::Response - include Rainbows::Acceptor FIO = Rainbows::Fiber::IO def to_io @@ -73,7 +72,7 @@ module Rainbows::Fiber def on_readable return if G.cur >= MAX - c = accept(@io) and ::Fiber.new { process(c) }.resume + c = @io.kgio_tryaccept and ::Fiber.new { process(c) }.resume end def process(io) @@ -82,7 +81,6 @@ module Rainbows::Fiber buf = client.read_timeout or return hp = HttpParser.new env = {} - remote_addr = Rainbows.addr(io) begin # loop buf << (client.read_timeout or return) until hp.headers(env, buf) @@ -90,7 +88,7 @@ module Rainbows::Fiber env[CLIENT_IO] = client env[RACK_INPUT] = 0 == hp.content_length ? HttpRequest::NULL_IO : TeeInput.new(client, env, hp, buf) - env[REMOTE_ADDR] = remote_addr + env[REMOTE_ADDR] = io.kgio_addr status, headers, body = APP.call(env.update(RACK_DEFAULTS)) if 100 == status.to_i -- cgit v1.2.3-24-ge0c7