1 |
commit: 7f1a362fea4ca0bf4cd0476ceb3a61afb8ef1a7e |
2 |
Author: Zac Medico <zmedico <AT> gentoo <DOT> org> |
3 |
AuthorDate: Tue Apr 24 06:40:46 2018 +0000 |
4 |
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> |
5 |
CommitDate: Tue Apr 24 06:56:18 2018 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=7f1a362f |
7 |
|
8 |
EbuildMetadataPhase._output_handler: fix event loop recursion (bug 591760) |
9 |
|
10 |
When pid exit status is not yet available, use the Subprocess |
11 |
_async_waitpid() method to avoid event loop recursion. |
12 |
|
13 |
Bug: https://bugs.gentoo.org/591760 |
14 |
|
15 |
pym/_emerge/EbuildMetadataPhase.py | 7 +++++-- |
16 |
1 file changed, 5 insertions(+), 2 deletions(-) |
17 |
|
18 |
diff --git a/pym/_emerge/EbuildMetadataPhase.py b/pym/_emerge/EbuildMetadataPhase.py |
19 |
index bbb1ca9dc..1ee967532 100644 |
20 |
--- a/pym/_emerge/EbuildMetadataPhase.py |
21 |
+++ b/pym/_emerge/EbuildMetadataPhase.py |
22 |
@@ -144,8 +144,11 @@ class EbuildMetadataPhase(SubProcess): |
23 |
break |
24 |
else: |
25 |
if not self._raw_metadata[-1]: |
26 |
- self._unregister() |
27 |
- self.wait() |
28 |
+ if self.pid is None: |
29 |
+ self._unregister() |
30 |
+ self._async_wait() |
31 |
+ else: |
32 |
+ self.self._async_waitpid() |
33 |
break |
34 |
|
35 |
self._unregister_if_appropriate(event) |