1 |
commit: d331f03ab25422e9afc2e752ea8e39c93a4b0bec |
2 |
Author: Zac Medico <zmedico <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sat Feb 29 22:38:35 2020 +0000 |
4 |
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> |
5 |
CommitDate: Sat Feb 29 22:43:51 2020 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=d331f03a |
7 |
|
8 |
SpawnProcess: cancel pipe_logger after async_start CancelledError |
9 |
|
10 |
Signed-off-by: Zac Medico <zmedico <AT> gentoo.org> |
11 |
|
12 |
lib/_emerge/SpawnProcess.py | 7 ++++++- |
13 |
1 file changed, 6 insertions(+), 1 deletion(-) |
14 |
|
15 |
diff --git a/lib/_emerge/SpawnProcess.py b/lib/_emerge/SpawnProcess.py |
16 |
index 941b56683..ab7971ca8 100644 |
17 |
--- a/lib/_emerge/SpawnProcess.py |
18 |
+++ b/lib/_emerge/SpawnProcess.py |
19 |
@@ -147,7 +147,12 @@ class SpawnProcess(SubProcess): |
20 |
log_file_path=log_file_path, |
21 |
stdout_fd=stdout_fd) |
22 |
self._registered = True |
23 |
- yield pipe_logger.async_start() |
24 |
+ try: |
25 |
+ yield pipe_logger.async_start() |
26 |
+ except asyncio.CancelledError: |
27 |
+ if pipe_logger.poll() is None: |
28 |
+ pipe_logger.cancel() |
29 |
+ raise |
30 |
|
31 |
self._main_task = asyncio.ensure_future( |
32 |
self._main(pipe_logger), loop=self.scheduler) |