commit:     036c644712c36b2d67e818e6f60aa753ebd6acaf
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 18 06:40:57 2020 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Tue Feb 18 06:44:43 2020 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=036c6447

AsynchronousTask: Call _start_hook after _start_async

The start listeners need to run after _start_async has
completed in case they rely on any state that _start_async
has created (same goes for _start).

Fixes: d66e9ec0b105 ("AsynchronousTask: add coroutine async_start method")
Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>

 lib/_emerge/AsynchronousTask.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/_emerge/AsynchronousTask.py b/lib/_emerge/AsynchronousTask.py
index 280ed16da..d1e23cdf1 100644
--- a/lib/_emerge/AsynchronousTask.py
+++ b/lib/_emerge/AsynchronousTask.py
@@ -25,8 +25,8 @@ class AsynchronousTask(SlotObject):
 
        @coroutine
        def async_start(self):
-               self._start_hook()
                yield self._async_start()
+               self._start_hook()
 
        @coroutine
        def _async_start(self):
@@ -38,8 +38,8 @@ class AsynchronousTask(SlotObject):
                """
                Start an asynchronous task and then return as soon as possible.
                """
-               self._start_hook()
                self._start()
+               self._start_hook()
 
        def _start(self):
                self.returncode = os.EX_OK

Reply via email to