From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (unknown [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 67AA11381F3 for ; Tue, 9 Jul 2013 22:50:31 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id B8892E0A8F; Tue, 9 Jul 2013 22:50:04 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id C34F7E0A8D for ; Tue, 9 Jul 2013 22:50:03 +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 AC87033EBB1 for ; Tue, 9 Jul 2013 21:20:23 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id 3AA77E468F for ; Tue, 9 Jul 2013 21:20:22 +0000 (UTC) From: "Zac Medico" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Zac Medico" Message-ID: <1373404805.0feda7b9d411ea972ec49b55da818b73cc9fd800.zmedico@gentoo> Subject: [gentoo-commits] proj/portage:master commit in: pym/_emerge/ X-VCS-Repository: proj/portage X-VCS-Files: pym/_emerge/Scheduler.py X-VCS-Directories: pym/_emerge/ X-VCS-Committer: zmedico X-VCS-Committer-Name: Zac Medico X-VCS-Revision: 0feda7b9d411ea972ec49b55da818b73cc9fd800 X-VCS-Branch: master Date: Tue, 9 Jul 2013 21:20:22 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 7ac2e19b-47a2-499f-83a3-7c18ed133c17 X-Archives-Hash: d27a71e1dcb9e5dee021863f90e238f4 commit: 0feda7b9d411ea972ec49b55da818b73cc9fd800 Author: Zac Medico gentoo org> AuthorDate: Tue Jul 9 21:20:05 2013 +0000 Commit: Zac Medico gentoo org> CommitDate: Tue Jul 9 21:20:05 2013 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=0feda7b9 _job_delay: prevent accumlation of timeouts --- pym/_emerge/Scheduler.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/pym/_emerge/Scheduler.py b/pym/_emerge/Scheduler.py index 5cb4128..d663e97 100644 --- a/pym/_emerge/Scheduler.py +++ b/pym/_emerge/Scheduler.py @@ -250,6 +250,7 @@ class Scheduler(PollScheduler): # new jobs. self._job_delay_max = 5 self._previous_job_start_time = None + self._job_delay_timeout_id = None # The load average takes some time to respond when after # a SIGSTOP/SIGCONT cycle, so delay scheduling for some @@ -1610,7 +1611,12 @@ class Scheduler(PollScheduler): # elapsed_seconds < 0 means the system clock has been adjusted if elapsed_seconds > 0 and \ elapsed_seconds < self._sigcont_delay: - self._event_loop.timeout_add( + + if self._job_delay_timeout_id is not None: + self._event_loop.source_remove( + self._job_delay_timeout_id) + + self._job_delay_timeout_id = self._event_loop.timeout_add( 1000 * (self._sigcont_delay - elapsed_seconds), self._schedule_once) return True @@ -1631,7 +1637,12 @@ class Scheduler(PollScheduler): elapsed_seconds = current_time - self._previous_job_start_time # elapsed_seconds < 0 means the system clock has been adjusted if elapsed_seconds > 0 and elapsed_seconds < delay: - self._event_loop.timeout_add( + + if self._job_delay_timeout_id is not None: + self._event_loop.source_remove( + self._job_delay_timeout_id) + + self._job_delay_timeout_id = self._event_loop.timeout_add( 1000 * (delay - elapsed_seconds), self._schedule_once) return True