commit:     7f1a362fea4ca0bf4cd0476ceb3a61afb8ef1a7e
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 24 06:40:46 2018 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Tue Apr 24 06:56:18 2018 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=7f1a362f

EbuildMetadataPhase._output_handler: fix event loop recursion (bug 591760)

When pid exit status is not yet available, use the Subprocess
_async_waitpid() method to avoid event loop recursion.

Bug: https://bugs.gentoo.org/591760

 pym/_emerge/EbuildMetadataPhase.py | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/pym/_emerge/EbuildMetadataPhase.py 
b/pym/_emerge/EbuildMetadataPhase.py
index bbb1ca9dc..1ee967532 100644
--- a/pym/_emerge/EbuildMetadataPhase.py
+++ b/pym/_emerge/EbuildMetadataPhase.py
@@ -144,8 +144,11 @@ class EbuildMetadataPhase(SubProcess):
                                        break
                                else:
                                        if not self._raw_metadata[-1]:
-                                               self._unregister()
-                                               self.wait()
+                                               if self.pid is None:
+                                                       self._unregister()
+                                                       self._async_wait()
+                                               else:
+                                                       
self.self._async_waitpid()
                                                break
 
                self._unregister_if_appropriate(event)

Reply via email to