commit:     3d81af6440cfd20cd007568779d6129083f1de24
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 28 22:45:56 2018 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sat Apr 28 22:45:56 2018 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=3d81af64

AsyncScheduler: fix deprecated _wait usage (bug 653856)

Override AsynchronousTask._async_wait() for cleanup, since
AsynchronousTask._wait() is deprecated.

Bug: https://bugs.gentoo.org/653856

 pym/portage/util/_async/AsyncScheduler.py | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/pym/portage/util/_async/AsyncScheduler.py 
b/pym/portage/util/_async/AsyncScheduler.py
index 1b870c771..2ddbaa885 100644
--- a/pym/portage/util/_async/AsyncScheduler.py
+++ b/pym/portage/util/_async/AsyncScheduler.py
@@ -29,12 +29,11 @@ class AsyncScheduler(AsynchronousTask, PollScheduler):
 
        def _poll(self):
                if not (self._is_work_scheduled() or self._keep_scheduling()):
-                       self._cleanup()
-
                        if self._error_count > 0:
                                self.returncode = 1
                        else:
                                self.returncode = os.EX_OK
+                       self._async_wait()
                return self.returncode
 
        def _cancel(self):
@@ -91,7 +90,17 @@ class AsyncScheduler(AsynchronousTask, PollScheduler):
                        self._event_loop.source_remove(self._loadavg_check_id)
                        self._loadavg_check_id = None
 
+       def _async_wait(self):
+               """
+               Override _async_wait to call self._cleanup().
+               """
+               self._cleanup()
+               super(AsyncScheduler, self)._async_wait()
+
        def _wait(self):
+               """
+               Deprecated. Use _async_wait() instead.
+               """
                # Loop while there are jobs to be scheduled.
                while self._keep_scheduling():
                        self._event_loop.iteration()

Reply via email to