From 90a86c9822238f01e8d60c9303b9a0da64351c7f Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 5 Feb 2011 10:44:52 +0000 Subject: *epoll: refactor common loop code acceptor thread pools could use some work, still --- lib/rainbows/epoll/server.rb | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) (limited to 'lib/rainbows/epoll') diff --git a/lib/rainbows/epoll/server.rb b/lib/rainbows/epoll/server.rb index a8be3e2..96b3308 100644 --- a/lib/rainbows/epoll/server.rb +++ b/lib/rainbows/epoll/server.rb @@ -1,8 +1,9 @@ # -*- encoding: binary -*- # :nodoc: module Rainbows::Epoll::Server - IN = SleepyPenguin::Epoll::IN | SleepyPenguin::Epoll::ET @@nr = 0 + Rainbows::Epoll.nr_clients = lambda { @@nr } + IN = SleepyPenguin::Epoll::IN | SleepyPenguin::Epoll::ET MAX = Rainbows.server.worker_connections THRESH = MAX - 1 LISTENERS = Rainbows::HttpServer::LISTENERS @@ -10,14 +11,7 @@ module Rainbows::Epoll::Server def self.run LISTENERS.each { |sock| EP.add(sock.extend(self), IN) } - begin - EP.wait(nil, 1000) { |_, obj| obj.epoll_run } - Rainbows::Epoll.rerun - Rainbows::Epoll::Client.expire - rescue Errno::EINTR - rescue => e - Rainbows::Error.listen_loop(e) - end while Rainbows.tick || @@nr > 0 + Rainbows::Epoll.loop end # rearms all listeners when there's a free slot -- cgit v1.2.3-24-ge0c7