diff options
author | Eric Wong <normalperson@yhbt.net> | 2013-02-26 21:02:34 +0000 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2013-02-26 21:05:55 +0000 |
commit | 1bdb4eda0d868223bd6b3d92db4545a02f5e14f9 (patch) | |
tree | 77b8442bada556449358a6ef5aec678ff5ab4d55 /lib/rainbows/xepoll | |
parent | 552c4ca305092911ca7613de4b1ba310e5481775 (diff) | |
download | rainbows-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.rb | 3 |
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 |