summaryrefslogtreecommitdiffstats
path: root/pym/portage/util/_eventloop
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-08-22 09:23:18 -0700
committerZac Medico <zmedico@gentoo.org>2012-08-22 09:23:18 -0700
commit7a55f93d76bab41f025b77fc4e356d6a5b4b9385 (patch)
tree3b236ae9b1de8c179a59a700691d1ce85c30e59b /pym/portage/util/_eventloop
parentb986bcdd49c5523ffe6972377071d556a819c776 (diff)
downloadportage-7a55f93d76bab41f025b77fc4e356d6a5b4b9385.tar.gz
portage-7a55f93d76bab41f025b77fc4e356d6a5b4b9385.tar.bz2
portage-7a55f93d76bab41f025b77fc4e356d6a5b4b9385.zip
EventLoop: handle EINTR IOError for epoll
Diffstat (limited to 'pym/portage/util/_eventloop')
-rw-r--r--pym/portage/util/_eventloop/EventLoop.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/pym/portage/util/_eventloop/EventLoop.py b/pym/portage/util/_eventloop/EventLoop.py
index eed68fe00..44a3c26b6 100644
--- a/pym/portage/util/_eventloop/EventLoop.py
+++ b/pym/portage/util/_eventloop/EventLoop.py
@@ -96,9 +96,11 @@ class EventLoop(object):
try:
self._poll_event_queue.extend(self._poll_obj.poll(timeout))
break
- except select.error as e:
+ except (IOError, select.error) as e:
# Silently handle EINTR, which is normal when we have
- # received a signal such as SIGINT.
+ # received a signal such as SIGINT (epoll objects may
+ # raise IOError rather than select.error, at least in
+ # Python 3.2).
if not (e.args and e.args[0] == errno.EINTR):
writemsg_level("\n!!! select error: %s\n" % (e,),
level=logging.ERROR, noiselevel=-1)