diff --git a/circuits/core/manager.py b/circuits/core/manager.py
--- a/circuits/core/manager.py
+++ b/circuits/core/manager.py
@@ -313,6 +313,8 @@
# the event we just added
if self.needs_resume:
self.needs_resume()
+ else:
+ print("Don't need to resume!")
def fireEvent(self, event, *channels):
"""Fire an event into the system.
@@ -677,9 +679,9 @@
if len(self._tasks) > 0 or self:
# if work remains to be done, generate as fast as possible
e.reduce_time_left(0)
- else:
- # Don't generate longer than timeout.
- e.reduce_time_left(TIMEOUT)
+ #else:
+ # # Don't generate longer than timeout.
+ # e.reduce_time_left(TIMEOUT)
self.fire(e, "*")
diff --git a/circuits/core/pollers.py b/circuits/core/pollers.py
--- a/circuits/core/pollers.py
+++ b/circuits/core/pollers.py
@@ -181,7 +181,9 @@
return
timeout = event.time_left
if timeout < 0:
+ self.root.needs_resume = self.resume
r, w, _ = select.select(self._read, self._write, [])
+ self.root.needs_resume = None
else:
r, w, _ = select.select(self._read, self._write, [], timeout)
except ValueError as e:
@@ -289,7 +291,9 @@
try:
timeout = event.time_left
if timeout < 0:
+ self.root.needs_resume = self.resume
l = self._poller.poll()
+ self.root.needs_resume = None
else:
l = self._poller.poll(1000 * timeout)
except SelectError as e:
@@ -396,7 +400,9 @@
try:
timeout = event.time_left
if timeout < 0:
+ self.root.needs_resume = self.resume
l = self._poller.poll()
+ self.root.needs_resume = None
else:
l = self._poller.poll(timeout)
except IOError as e:
@@ -511,7 +517,9 @@
try:
timeout = event.time_left
if timeout < 0:
+ self.root.needs_resume = self.resume
l = self._poller.control(None, 1000)
+ self.root.needs_resume = None
else:
l = self._poller.control(None, 1000, timeout)
except SelectError as e: