From 2fba213baa36179a0c677fb913aba593debfbe2a Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Thu, 17 Jul 2008 10:40:44 +0000 Subject: Tweak interaction between Scheduler and status display so that it doesn't display more often than necessary and avoids showing inconsistent counts. svn path=/main/trunk/; revision=11099 --- pym/_emerge/__init__.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'pym/_emerge') diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index df4de0b7c..3fbca74b4 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -8984,7 +8984,6 @@ class Scheduler(PollScheduler): not merge.merge.pkg.installed: self._status_display.curval += 1 self._status_display.merges = len(self._task_queues.merge) - self._status_display.display() def _do_merge_exit(self, merge): pkg = merge.merge.pkg @@ -9021,13 +9020,13 @@ class Scheduler(PollScheduler): merge = PackageMerge(merge=build) merge.addExitListener(self._merge_exit) self._task_queues.merge.add(merge) + self._status_display.merges = len(self._task_queues.merge) else: self._failed_pkgs.append((build.pkg, build.returncode)) self._deallocate_config(build.settings) self._jobs -= 1 + self._status_display.running = self._jobs self._schedule() - self._status_display.merges = len(self._task_queues.merge) - self._status_display.display() def _extract_exit(self, build): self._build_exit(build) @@ -9135,8 +9134,8 @@ class Scheduler(PollScheduler): def _schedule_tasks(self): remaining, state_change = self._schedule_tasks_imp() - self._status_display.running = self._jobs - self._status_display.display() + if state_change: + self._status_display.display() return remaining def _schedule_tasks_imp(self): @@ -9177,10 +9176,12 @@ class Scheduler(PollScheduler): task_queues.merge.add(merge) elif pkg.built: self._jobs += 1 + self._status_display.running = self._jobs task.addExitListener(self._extract_exit) task_queues.jobs.add(task) else: self._jobs += 1 + self._status_display.running = self._jobs task.addExitListener(self._build_exit) task_queues.jobs.add(task) return (True, state_change) -- cgit v1.2.3-1-g7c22