diff options
author | Zac Medico <zmedico@gentoo.org> | 2012-02-11 15:56:07 -0800 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2012-02-11 15:56:07 -0800 |
commit | ea8cb012d563bdce3eeeec6f85874503b0048928 (patch) | |
tree | b0b98e7a1ded1dee0813c6d1c340610169413e96 | |
parent | 33d82be6f57cb845ae957309be9a4ab4303de0de (diff) | |
download | portage-ea8cb012d563bdce3eeeec6f85874503b0048928.tar.gz portage-ea8cb012d563bdce3eeeec6f85874503b0048928.tar.bz2 portage-ea8cb012d563bdce3eeeec6f85874503b0048928.zip |
EventLoop.iteration: handle _poll StopIteration
-rw-r--r-- | pym/portage/util/_eventloop/EventLoop.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/pym/portage/util/_eventloop/EventLoop.py b/pym/portage/util/_eventloop/EventLoop.py index c059197c1..0da388d03 100644 --- a/pym/portage/util/_eventloop/EventLoop.py +++ b/pym/portage/util/_eventloop/EventLoop.py @@ -177,7 +177,13 @@ class EventLoop(object): timeout = self._timeout_interval else: timeout = 0 - self._poll(timeout=timeout) + try: + self._poll(timeout=timeout) + except StopIteration: + # This could happen if there are no IO event handlers + # after _poll() calls _run_timeouts(), due to them + # being removed by timeout or idle callbacks. + events_handled += 1 try: while event_handlers and self._poll_event_queue: |