summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-02-08 21:17:18 -0800
committerZac Medico <zmedico@gentoo.org>2012-02-08 21:17:18 -0800
commit7092cf7fcbd1c51bd739110baaea9da011c5ebf5 (patch)
treefd3a8316efdee1964ec68afde30723b4746ab711
parent6823977b783a7205154af5f4234fe02982c62666 (diff)
downloadportage-7092cf7fcbd1c51bd739110baaea9da011c5ebf5.tar.gz
portage-7092cf7fcbd1c51bd739110baaea9da011c5ebf5.tar.bz2
portage-7092cf7fcbd1c51bd739110baaea9da011c5ebf5.zip
MergeProcess: handle POLLHUP from elog pipe
-rw-r--r--pym/portage/dbapi/_MergeProcess.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/pym/portage/dbapi/_MergeProcess.py b/pym/portage/dbapi/_MergeProcess.py
index eed7bd45f..da278ea2a 100644
--- a/pym/portage/dbapi/_MergeProcess.py
+++ b/pym/portage/dbapi/_MergeProcess.py
@@ -83,6 +83,13 @@ class MergeProcess(SpawnProcess):
reporter = getattr(portage.elog.messages, funcname)
reporter(msg, phase=phase, key=key, out=out)
+ if event & PollConstants.POLLHUP:
+ self.scheduler.unregister(self._elog_reg_id)
+ self._elog_reg_id = None
+ os.close(self._elog_reader_fd)
+ self._elog_reader_fd = None
+ return False
+
return True
def _spawn(self, args, fd_pipes, **kwargs):