commit: abf4b7abcdc53bbbd86eb6f79d45417b54ed64d2 Author: Zac Medico <zmedico <AT> gentoo <DOT> org> AuthorDate: Sun Apr 29 22:12:13 2018 +0000 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> CommitDate: Sun Apr 29 22:18:28 2018 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=abf4b7ab
AsyncScheduler: call_later asyncio compat (bug 591760) Use call_later for asyncio compatibility. Also remove the timeout_add method from SchedulerInterface, since there are no more consumers. Bug: https://bugs.gentoo.org/591760 pym/portage/util/_async/AsyncScheduler.py | 9 +++++++-- pym/portage/util/_async/SchedulerInterface.py | 1 - 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/pym/portage/util/_async/AsyncScheduler.py b/pym/portage/util/_async/AsyncScheduler.py index 90e803eba..c6b523eaa 100644 --- a/pym/portage/util/_async/AsyncScheduler.py +++ b/pym/portage/util/_async/AsyncScheduler.py @@ -65,6 +65,11 @@ class AsyncScheduler(AsynchronousTask, PollScheduler): task.addExitListener(self._task_exit) task.start() + if self._loadavg_check_id is not None: + self._loadavg_check_id.cancel() + self._loadavg_check_id = self._event_loop.call_later( + self._loadavg_latency, self._schedule) + # Triggers cleanup and exit listeners if there's nothing left to do. self.poll() @@ -80,14 +85,14 @@ class AsyncScheduler(AsynchronousTask, PollScheduler): (self._max_jobs is True or self._max_jobs > 1): # We have to schedule periodically, in case the load # average has changed since the last call. - self._loadavg_check_id = self._event_loop.timeout_add( + self._loadavg_check_id = self._event_loop.call_later( self._loadavg_latency, self._schedule) self._schedule() def _cleanup(self): super(AsyncScheduler, self)._cleanup() if self._loadavg_check_id is not None: - self._event_loop.source_remove(self._loadavg_check_id) + self._loadavg_check_id.cancel() self._loadavg_check_id = None def _async_wait(self): diff --git a/pym/portage/util/_async/SchedulerInterface.py b/pym/portage/util/_async/SchedulerInterface.py index ff39bc587..56b844616 100644 --- a/pym/portage/util/_async/SchedulerInterface.py +++ b/pym/portage/util/_async/SchedulerInterface.py @@ -15,7 +15,6 @@ class SchedulerInterface(SlotObject): "IO_NVAL", "IO_OUT", "IO_PRI", "io_add_watch", "source_remove", - "timeout_add", "add_reader", "add_writer",