From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1RvHxP-0001QP-Gu for garchives@archives.gentoo.org; Thu, 09 Feb 2012 00:33:51 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 03478E0652; Thu, 9 Feb 2012 00:33:42 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id B8F4FE0652 for ; Thu, 9 Feb 2012 00:33:42 +0000 (UTC) Received: from hornbill.gentoo.org (hornbill.gentoo.org [94.100.119.163]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 9BE011B4013 for ; Thu, 9 Feb 2012 00:33:41 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id 4DC89E5400 for ; Thu, 9 Feb 2012 00:33:40 +0000 (UTC) From: "Zac Medico" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Zac Medico" Message-ID: <4620d6aba1c5c10344e311585516ee43819b703c.zmedico@gentoo> Subject: [gentoo-commits] proj/portage:master commit in: pym/_emerge/ X-VCS-Repository: proj/portage X-VCS-Files: pym/_emerge/Scheduler.py pym/_emerge/SequentialTaskQueue.py X-VCS-Directories: pym/_emerge/ X-VCS-Committer: zmedico X-VCS-Committer-Name: Zac Medico X-VCS-Revision: 4620d6aba1c5c10344e311585516ee43819b703c Date: Thu, 9 Feb 2012 00:33:40 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: f7f05db8-db8c-4a82-b26e-db67e966ace5 X-Archives-Hash: 09f37b25718bd206cc5e531140d2b15f commit: 4620d6aba1c5c10344e311585516ee43819b703c Author: Zac Medico gentoo org> AuthorDate: Thu Feb 9 00:33:14 2012 +0000 Commit: Zac Medico gentoo org> CommitDate: Thu Feb 9 00:33:14 2012 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/portage.git;a= =3Dcommit;h=3D4620d6ab 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(). --- pym/_emerge/Scheduler.py | 14 +++++++------- pym/_emerge/SequentialTaskQueue.py | 5 ++++- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/pym/_emerge/Scheduler.py b/pym/_emerge/Scheduler.py index ee7a02c..d3f7761 100644 --- a/pym/_emerge/Scheduler.py +++ b/pym/_emerge/Scheduler.py @@ -1514,6 +1514,8 @@ class Scheduler(PollScheduler): =20 while True: =20 + state_change =3D 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 =3D 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 =3D len(self._task_queues.merge) - self._merge_wait_scheduled.append(task) + state_change +=3D 1 =20 - self._schedule_tasks_imp() - self._status_display.display() + if self._schedule_tasks_imp(): + state_change +=3D 1 =20 - state_change =3D 0 - for q in self._task_queues.values(): - if q.schedule(): - state_change +=3D 1 + self._status_display.display() =20 # Cancel prefetchers if they're the only reason # the main poll loop is still running. diff --git a/pym/_emerge/SequentialTaskQueue.py b/pym/_emerge/SequentialT= askQueue.py index c1c98c4..88ac844 100644 --- a/pym/_emerge/SequentialTaskQueue.py +++ b/pym/_emerge/SequentialTaskQueue.py @@ -1,4 +1,4 @@ -# Copyright 1999-2009 Gentoo Foundation +# Copyright 1999-2012 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 =20 import sys @@ -20,10 +20,12 @@ class SequentialTaskQueue(SlotObject): def add(self, task): self._task_queue.append(task) self._dirty =3D True + self.schedule() =20 def addFront(self, task): self._task_queue.appendleft(task) self._dirty =3D True + self.schedule() =20 def schedule(self): =20 @@ -69,6 +71,7 @@ class SequentialTaskQueue(SlotObject): self.running_tasks.remove(task) if self._task_queue: self._dirty =3D True + self.schedule() =20 def clear(self): self._task_queue.clear()