From 047b214fe936c1b4949b5e860d90175a4aed9728 Mon Sep 17 00:00:00 2001 From: Ryan Williams Date: Mon, 18 Jan 2010 23:26:16 -0800 Subject: [PATCH] Code was correct, but only for epoll. Glad we have these tests. --- eventlet/hubs/epolls.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/eventlet/hubs/epolls.py b/eventlet/hubs/epolls.py index 57f84d7..036682c 100644 --- a/eventlet/hubs/epolls.py +++ b/eventlet/hubs/epolls.py @@ -8,6 +8,7 @@ except ImportError, e: import time from eventlet.hubs.hub import BaseHub from eventlet.hubs import poll +from eventlet.hubs.poll import READ, WRITE # NOTE: we rely on the fact that the epoll flag constants # are identical in value to the poll constants @@ -22,3 +23,12 @@ class Hub(poll.Hub): self.modify = self.poll.modify except AttributeError: self.modify = self.poll.register + + def add(self, evtype, fileno, cb): + oldlisteners = bool(self.listeners[READ].get(fileno) or + self.listeners[WRITE].get(fileno)) + listener = BaseHub.add(self,evtype, fileno, cb) + if not oldlisteners: + # Means we've added a new listener + self.register(fileno, new=True) + return listener