commit:     d331f03ab25422e9afc2e752ea8e39c93a4b0bec
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 29 22:38:35 2020 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sat Feb 29 22:43:51 2020 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=d331f03a

SpawnProcess: cancel pipe_logger after async_start CancelledError

Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>

 lib/_emerge/SpawnProcess.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/lib/_emerge/SpawnProcess.py b/lib/_emerge/SpawnProcess.py
index 941b56683..ab7971ca8 100644
--- a/lib/_emerge/SpawnProcess.py
+++ b/lib/_emerge/SpawnProcess.py
@@ -147,7 +147,12 @@ class SpawnProcess(SubProcess):
                        log_file_path=log_file_path,
                        stdout_fd=stdout_fd)
                self._registered = True
-               yield pipe_logger.async_start()
+               try:
+                       yield pipe_logger.async_start()
+               except asyncio.CancelledError:
+                       if pipe_logger.poll() is None:
+                               pipe_logger.cancel()
+                       raise
 
                self._main_task = asyncio.ensure_future(
                        self._main(pipe_logger), loop=self.scheduler)

Reply via email to