summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/SubProcess.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-02-06 18:58:51 -0800
committerZac Medico <zmedico@gentoo.org>2012-02-07 11:12:32 -0800
commit445a6ea22c132f4c06c2cc7c48ec6e7af7116962 (patch)
treeb58ab2ad51696b7588a0a644e58ee6e4cc7329bf /pym/_emerge/SubProcess.py
parent839f369f259a7c019c1f544bf4c153058355f6d4 (diff)
downloadportage-445a6ea22c132f4c06c2cc7c48ec6e7af7116962.tar.gz
portage-445a6ea22c132f4c06c2cc7c48ec6e7af7116962.tar.bz2
portage-445a6ea22c132f4c06c2cc7c48ec6e7af7116962.zip
Use timeout_add to avoid recursion, bug #402335.
Diffstat (limited to 'pym/_emerge/SubProcess.py')
-rw-r--r--pym/_emerge/SubProcess.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/pym/_emerge/SubProcess.py b/pym/_emerge/SubProcess.py
index 37922dc66..c5cac7dde 100644
--- a/pym/_emerge/SubProcess.py
+++ b/pym/_emerge/SubProcess.py
@@ -16,6 +16,10 @@ class SubProcess(AbstractPollTask):
# serve this purpose alone.
_dummy_pipe_fd = 9
+ # This is how much time we allow for waitpid to succeed after
+ # we've sent a kill signal to our subprocess.
+ _cancel_timeout = 1000 # 1 second
+
def _poll(self):
if self.returncode is not None:
return self.returncode
@@ -60,7 +64,7 @@ class SubProcess(AbstractPollTask):
if self._registered:
if self.cancelled:
- timeout = 1000
+ timeout = self._cancel_timeout
self.scheduler.schedule(self._reg_id, timeout=timeout)
if self._registered:
try: