about summary refs log tree commit homepage
path: root/lib/rainbows/epoll
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2011-02-05 10:11:56 +0000
committerEric Wong <normalperson@yhbt.net>2011-02-05 10:11:56 +0000
commitc9ca82c76f1eb0e06b0aa204a243d00f382579c5 (patch)
tree4ca29dd42f3114c89b31022b993c38247fd0fe98 /lib/rainbows/epoll
parentd8e3edadd128a2ee5712b87a6b660295de2df6be (diff)
downloadrainbows-c9ca82c76f1eb0e06b0aa204a243d00f382579c5.tar.gz
There's a lot of code duplication here :<
Diffstat (limited to 'lib/rainbows/epoll')
-rw-r--r--lib/rainbows/epoll/client.rb2
-rw-r--r--lib/rainbows/epoll/server.rb5
2 files changed, 2 insertions, 5 deletions
diff --git a/lib/rainbows/epoll/client.rb b/lib/rainbows/epoll/client.rb
index a8eacab..a243d5d 100644
--- a/lib/rainbows/epoll/client.rb
+++ b/lib/rainbows/epoll/client.rb
@@ -100,7 +100,7 @@ module Rainbows::Epoll::Client
   end
 
   def want_more
-    Server::ReRun << self
+    Rainbows::Epoll::ReRun << self
   end
 
   def on_deferred_write_complete
diff --git a/lib/rainbows/epoll/server.rb b/lib/rainbows/epoll/server.rb
index 820a6da..a8be3e2 100644
--- a/lib/rainbows/epoll/server.rb
+++ b/lib/rainbows/epoll/server.rb
@@ -6,16 +6,13 @@ module Rainbows::Epoll::Server
   MAX = Rainbows.server.worker_connections
   THRESH = MAX - 1
   LISTENERS = Rainbows::HttpServer::LISTENERS
-  ReRun = []
   EP = Rainbows::Epoll::EP
 
   def self.run
     LISTENERS.each { |sock| EP.add(sock.extend(self), IN) }
     begin
       EP.wait(nil, 1000) { |_, obj| obj.epoll_run }
-      while obj = ReRun.shift
-        obj.epoll_run
-      end
+      Rainbows::Epoll.rerun
       Rainbows::Epoll::Client.expire
     rescue Errno::EINTR
     rescue => e