diff options
author | Zac Medico <zmedico@gentoo.org> | 2012-08-22 09:23:18 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2012-08-22 09:23:18 -0700 |
commit | 7a55f93d76bab41f025b77fc4e356d6a5b4b9385 (patch) | |
tree | 3b236ae9b1de8c179a59a700691d1ce85c30e59b | |
parent | b986bcdd49c5523ffe6972377071d556a819c776 (diff) | |
download | portage-7a55f93d76bab41f025b77fc4e356d6a5b4b9385.tar.gz portage-7a55f93d76bab41f025b77fc4e356d6a5b4b9385.tar.bz2 portage-7a55f93d76bab41f025b77fc4e356d6a5b4b9385.zip |
EventLoop: handle EINTR IOError for epoll
-rw-r--r-- | pym/portage/util/_eventloop/EventLoop.py | 6 |
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) |