diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-07-29 19:30:37 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-07-29 19:30:37 +0000 |
commit | 46c51bf2bf6ad2cf07cf7c28979d53f4f3db1fee (patch) | |
tree | c5bbb0f11c8c233d8155d03b631eddeb9fc3b5f7 | |
parent | 991773242ebdb8203b641d3c1db073b332485ef5 (diff) | |
download | portage-46c51bf2bf6ad2cf07cf7c28979d53f4f3db1fee.tar.gz portage-46c51bf2bf6ad2cf07cf7c28979d53f4f3db1fee.tar.bz2 portage-46c51bf2bf6ad2cf07cf7c28979d53f4f3db1fee.zip |
Disable auto_schedule on all of Scheduler._task_queues and schedule them
inside _schedule_tasks(). This should help solve a tight loop.
svn path=/main/trunk/; revision=11269
-rw-r--r-- | pym/_emerge/__init__.py | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index 6951590db..3fee85d03 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -8826,13 +8826,7 @@ class Scheduler(PollScheduler): self._task_queues = self._task_queues_class() for k in self._task_queues.allowed_keys: setattr(self._task_queues, k, - SequentialTaskQueue(auto_schedule=True)) - - # Merge tasks currently run synchronously which makes - # it necessary to disable auto_schedule in order to - # avoid excess recursion which prevents tasks from - # being marked complete as soon as they should be. - self._task_queues.merge.auto_schedule = False + SequentialTaskQueue()) self._prefetchers = weakref.WeakValueDictionary() self._pkg_queue = [] @@ -9654,7 +9648,9 @@ class Scheduler(PollScheduler): self._poll_loop() def _schedule_tasks(self): - self._task_queues.merge.schedule() + remaining, state_change = self._schedule_tasks_imp() + for q in self._task_queues.values(): + q.schedule() # Cancel prefetchers if they're the only reason # the main poll loop is still running. |