diff options
author | Zac Medico <zmedico@gentoo.org> | 2012-02-08 16:33:14 -0800 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2012-02-08 16:33:14 -0800 |
commit | 4620d6aba1c5c10344e311585516ee43819b703c (patch) | |
tree | c15e570e3c1cf8dcd0ccbcf26c5f305ff3602a57 /pym/_emerge/Scheduler.py | |
parent | 8c1fcf5a9ba9fa4d406a4d0cc284fe73a84f5a63 (diff) | |
download | portage-4620d6aba1c5c10344e311585516ee43819b703c.tar.gz portage-4620d6aba1c5c10344e311585516ee43819b703c.tar.bz2 portage-4620d6aba1c5c10344e311585516ee43819b703c.zip |
SequentialTaskQueue: schedule automatically
This is needed to compensate for the removal of _idle_schedule in
commit 8c1fcf5a9ba9fa4d406a4d0cc284fe73a84f5a63, so that the
Scheduler's task queues operate without needing their schedule methods
called inside Scheduler._schedule_tasks().
Diffstat (limited to 'pym/_emerge/Scheduler.py')
-rw-r--r-- | pym/_emerge/Scheduler.py | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/pym/_emerge/Scheduler.py b/pym/_emerge/Scheduler.py index ee7a02ca3..d3f77611d 100644 --- a/pym/_emerge/Scheduler.py +++ b/pym/_emerge/Scheduler.py @@ -1514,6 +1514,8 @@ class Scheduler(PollScheduler): while True: + state_change = 0 + # When the number of jobs and merges drops to zero, # process a single merge from _merge_wait_queue if # it's not empty. We only process one since these are @@ -1524,17 +1526,15 @@ class Scheduler(PollScheduler): not self._task_queues.merge): task = self._merge_wait_queue.popleft() task.addExitListener(self._merge_wait_exit_handler) + self._merge_wait_scheduled.append(task) self._task_queues.merge.add(task) self._status_display.merges = len(self._task_queues.merge) - self._merge_wait_scheduled.append(task) + state_change += 1 - self._schedule_tasks_imp() - self._status_display.display() + if self._schedule_tasks_imp(): + state_change += 1 - state_change = 0 - for q in self._task_queues.values(): - if q.schedule(): - state_change += 1 + self._status_display.display() # Cancel prefetchers if they're the only reason # the main poll loop is still running. |