commit:     ad325eb10bc6e8ec2a8248f8e9173911f957c0da
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Thu Apr  9 20:27:36 2020 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Thu Apr  9 20:47:08 2020 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=ad325eb1

_schedule_merge_wakeup: handle main loop exit

Detect main loop exit and do not attempt to schedule in this case.

Fixes: 389429d798a1 ("Scheduler: wakeup for empty merge queue (bug 711322)")
Reported-by: Rick Farina <zerochaos <AT> gentoo.org>
Bug: https://bugs.gentoo.org/711322
Bug: https://bugs.gentoo.org/716636
Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>

 lib/_emerge/Scheduler.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/_emerge/Scheduler.py b/lib/_emerge/Scheduler.py
index 2c0483230..6f4564000 100644
--- a/lib/_emerge/Scheduler.py
+++ b/lib/_emerge/Scheduler.py
@@ -1635,7 +1635,8 @@ class Scheduler(PollScheduler):
        def _schedule_merge_wakeup(self, future):
                if not future.cancelled():
                        future.result()
-                       self._schedule()
+                       if self._main_exit is not None and not 
self._main_exit.done():
+                               self._schedule()
 
        def _sigcont_handler(self, signum, frame):
                self._sigcont_time = time.time()

Reply via email to