summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-07-28 21:31:51 +0000
committerZac Medico <zmedico@gentoo.org>2008-07-28 21:31:51 +0000
commit854abf1726435e1031d4e261a20a94a6da0db3aa (patch)
tree488f4a4ca06ddad656ae69f3dbeaf913726201c4
parent68452f0261defd314d38b6188b38b3257d45ce55 (diff)
downloadportage-854abf1726435e1031d4e261a20a94a6da0db3aa.tar.gz
portage-854abf1726435e1031d4e261a20a94a6da0db3aa.tar.bz2
portage-854abf1726435e1031d4e261a20a94a6da0db3aa.zip
Bug #233165 - When waiting for jobs and merges to finish in
Scheduler._main_loop(), keep scheduling the merge queue since it doesn't autoschedule, and skip the poll loop if there no event handlers due to synchronous merge tasks being the only things left to do. svn path=/main/trunk/; revision=11249
-rw-r--r--pym/_emerge/__init__.py3
1 files changed, 3 insertions, 0 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index 877d64179..5d225a44f 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -9622,6 +9622,9 @@ class Scheduler(PollScheduler):
self._poll_loop()
while self._jobs or merge_queue:
+ if merge_queue.schedule() and \
+ not self._poll_event_handlers:
+ continue
self._poll_loop()
def _schedule_tasks(self):