Gentoo Archives: gentoo-commits

From: Zac Medico <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage:master commit in: pym/_emerge/
Date: Tue, 24 Apr 2018 06:57:22
Message-Id: 1524552978.7f1a362fea4ca0bf4cd0476ceb3a61afb8ef1a7e.zmedico@gentoo
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)