From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 142181382C5 for ; Sun, 29 Apr 2018 22:24:28 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 304E9E0BA8; Sun, 29 Apr 2018 22:24:27 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id EC969E0BA8 for ; Sun, 29 Apr 2018 22:24:26 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 12B0A335C9B for ; Sun, 29 Apr 2018 22:24:25 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 75BA2297 for ; Sun, 29 Apr 2018 22:24:23 +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: <1525040308.28fd93d4de0c1adcecb7ce10c7514d5718ccf43f.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: 28fd93d4de0c1adcecb7ce10c7514d5718ccf43f X-VCS-Branch: master Date: Sun, 29 Apr 2018 22:24:23 +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: caf06d80-c3e1-4c24-a175-d2fd4ca96f3f X-Archives-Hash: 0f833c9ca4f9f0d6990ac21a4fe62ce7 commit: 28fd93d4de0c1adcecb7ce10c7514d5718ccf43f Author: Zac Medico gentoo org> AuthorDate: Sun Apr 29 21:58:38 2018 +0000 Commit: Zac Medico gentoo org> CommitDate: Sun Apr 29 22:18:28 2018 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=28fd93d4 Scheduler: call_later asyncio compat (bug 591760) Use call_later for asyncio compatibility. Bug: https://bugs.gentoo.org/591760 pym/_emerge/Scheduler.py | 39 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/pym/_emerge/Scheduler.py b/pym/_emerge/Scheduler.py index 4c1ea5078..422308184 100644 --- a/pym/_emerge/Scheduler.py +++ b/pym/_emerge/Scheduler.py @@ -74,8 +74,8 @@ class Scheduler(PollScheduler): # max time between loadavg checks (seconds) _loadavg_latency = 30 - # max time between display status updates (milliseconds) - _max_display_latency = 3000 + # max time between display status updates (seconds) + _max_display_latency = 3 _opts_ignore_blockers = \ frozenset(["--buildpkgonly", @@ -1398,10 +1398,15 @@ class Scheduler(PollScheduler): failed_pkgs = self._failed_pkgs portage.locks._quiet = self._background portage.elog.add_listener(self._elog_listener) - display_timeout_id = None + + def display_callback(): + self._status_display.display() + display_callback.handle = self._event_loop.call_later( + self._max_display_latency, display_callback) + display_callback.handle = None + if self._status_display._isatty and not self._status_display.quiet: - display_timeout_id = self._event_loop.timeout_add( - self._max_display_latency, self._status_display.display) + display_callback() rval = os.EX_OK try: @@ -1410,8 +1415,8 @@ class Scheduler(PollScheduler): self._main_loop_cleanup() portage.locks._quiet = False portage.elog.remove_listener(self._elog_listener) - if display_timeout_id is not None: - self._event_loop.source_remove(display_timeout_id) + if display_callback.handle is not None: + display_callback.handle.cancel() if failed_pkgs: rval = failed_pkgs[-1].returncode @@ -1625,12 +1630,11 @@ class Scheduler(PollScheduler): elapsed_seconds < self._sigcont_delay: if self._job_delay_timeout_id is not None: - self._event_loop.source_remove( - self._job_delay_timeout_id) + self._job_delay_timeout_id.cancel() - self._job_delay_timeout_id = self._event_loop.timeout_add( - 1000 * (self._sigcont_delay - elapsed_seconds), - self._schedule_once) + self._job_delay_timeout_id = self._event_loop.call_later( + self._sigcont_delay - elapsed_seconds, + self._schedule) return True # Only set this to None after the delay has expired, @@ -1651,19 +1655,14 @@ class Scheduler(PollScheduler): if elapsed_seconds > 0 and elapsed_seconds < delay: if self._job_delay_timeout_id is not None: - self._event_loop.source_remove( - self._job_delay_timeout_id) + self._job_delay_timeout_id.cancel() - self._job_delay_timeout_id = self._event_loop.timeout_add( - 1000 * (delay - elapsed_seconds), self._schedule_once) + self._job_delay_timeout_id = self._event_loop.call_later( + delay - elapsed_seconds, self._schedule) return True return False - def _schedule_once(self): - self._schedule() - return False - def _schedule_tasks_imp(self): """ @rtype: bool