about summary refs log tree commit homepage
path: root/lib/rainbows/xepoll
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2013-02-26 21:02:34 +0000
committerEric Wong <normalperson@yhbt.net>2013-02-26 21:05:55 +0000
commit1bdb4eda0d868223bd6b3d92db4545a02f5e14f9 (patch)
tree77b8442bada556449358a6ef5aec678ff5ab4d55 /lib/rainbows/xepoll
parent552c4ca305092911ca7613de4b1ba310e5481775 (diff)
downloadrainbows-1bdb4eda0d868223bd6b3d92db4545a02f5e14f9.tar.gz
This prevents pathological starvation cases where the user-space
ready-list can be repopulated infinitely.  With EPOLLONESHOT,
epoll itself may be used for this task (at a slightly higher
cost) by enabling read/write checks, as the epoll ready-list
preserves event ordering when used with EPOLLONESHOT.
Diffstat (limited to 'lib/rainbows/xepoll')
-rw-r--r--lib/rainbows/xepoll/client.rb3
1 files changed, 0 insertions, 3 deletions
diff --git a/lib/rainbows/xepoll/client.rb b/lib/rainbows/xepoll/client.rb
index 4f15a73..f518db5 100644
--- a/lib/rainbows/xepoll/client.rb
+++ b/lib/rainbows/xepoll/client.rb
@@ -27,9 +27,6 @@ module Rainbows::XEpoll::Client
   def self.loop
     begin
       EP.wait(nil, 1000) { |_, obj| obj.epoll_run }
-      while obj = ReRun.shift
-        obj.epoll_run
-      end
       Rainbows::Epoll::Client.expire
     rescue Errno::EINTR
     rescue => e