aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2018-04-29 12:16:06 -0700
committerZac Medico <zmedico@gentoo.org>2018-04-29 13:27:32 -0700
commit22fbdd3bf7de43c3bb216cd2da0623cd24280499 (patch)
tree66fd43f16b910babb594ba4c2ed750a005197155
parentAbstractPollTask: call _unregister in _async_wait (bug 654276) (diff)
downloadportage-22fbdd3b.tar.gz
portage-22fbdd3b.tar.bz2
portage-22fbdd3b.zip
SpawnProcess: fix deprecated _set_returncode (bug 654276)
Move cleanup code from _set_returncode to _unregister, since _set_returncode expects an os.waitpid return value which is inconveniently different from the returncode that is passed to asyncio.AbstractChildWatcher.add_child_handler callbacks. Bug: https://bugs.gentoo.org/654276
-rw-r--r--pym/_emerge/SpawnProcess.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/pym/_emerge/SpawnProcess.py b/pym/_emerge/SpawnProcess.py
index 78eb5e9c0..f592c543d 100644
--- a/pym/_emerge/SpawnProcess.py
+++ b/pym/_emerge/SpawnProcess.py
@@ -117,8 +117,7 @@ class SpawnProcess(SubProcess):
if isinstance(retval, int):
# spawn failed
- self._unregister()
- self._set_returncode((self.pid, retval))
+ self.returncode = retval
self._async_wait()
return
@@ -172,9 +171,11 @@ class SpawnProcess(SubProcess):
self._pipe_logger = None
self._async_waitpid()
- def _set_returncode(self, wait_retval):
- SubProcess._set_returncode(self, wait_retval)
- self._cgroup_cleanup()
+ def _unregister(self):
+ SubProcess._unregister(self)
+ if self.cgroup is not None:
+ self._cgroup_cleanup()
+ self.cgroup = None
def _cancel(self):
SubProcess._cancel(self)