commit:     5d61d0f8d72b27213896f052ef4abb2337b922bf
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 21 04:53:52 2021 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Tue Sep 21 05:33:50 2021 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=5d61d0f8

Binpkg: convert compat coroutine to async

Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>

 lib/_emerge/Binpkg.py                      | 10 ++++------
 lib/portage/util/_async/AsyncTaskFuture.py |  4 +++-
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/lib/_emerge/Binpkg.py b/lib/_emerge/Binpkg.py
index 0f37063f0..c7dde69bd 100644
--- a/lib/_emerge/Binpkg.py
+++ b/lib/_emerge/Binpkg.py
@@ -1,4 +1,4 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 import functools
@@ -15,7 +15,6 @@ from _emerge.SpawnProcess import SpawnProcess
 from portage.eapi import eapi_exports_replace_vars
 from portage.util import ensure_dirs
 from portage.util._async.AsyncTaskFuture import AsyncTaskFuture
-from portage.util.futures.compat_coroutine import coroutine
 import portage
 from portage import os
 from portage import shutil
@@ -305,8 +304,7 @@ class Binpkg(CompositeTask):
             self._unpack_metadata_exit,
         )
 
-    @coroutine
-    def _unpack_metadata(self, loop=None):
+    async def _unpack_metadata(self, loop=None):
 
         dir_path = self.settings["PORTAGE_BUILDDIR"]
 
@@ -327,7 +325,7 @@ class Binpkg(CompositeTask):
         portage.prepare_build_dirs(self.settings["ROOT"], self.settings, 1)
         self._writemsg_level(">>> Extracting info\n")
 
-        yield self._bintree.dbapi.unpack_metadata(
+        await self._bintree.dbapi.unpack_metadata(
             self.settings, infloc, loop=self.scheduler
         )
         check_missing_metadata = ("CATEGORY", "PF")
@@ -378,7 +376,7 @@ class Binpkg(CompositeTask):
             background=self.background, scheduler=self.scheduler, 
settings=self.settings
         )
         env_extractor.start()
-        yield env_extractor.async_wait()
+        await env_extractor.async_wait()
         if env_extractor.returncode != os.EX_OK:
             raise portage.exception.PortageException(
                 "failed to extract environment for {}".format(self.pkg.cpv)

diff --git a/lib/portage/util/_async/AsyncTaskFuture.py 
b/lib/portage/util/_async/AsyncTaskFuture.py
index f87a7f90a..0cd034c97 100644
--- a/lib/portage/util/_async/AsyncTaskFuture.py
+++ b/lib/portage/util/_async/AsyncTaskFuture.py
@@ -1,10 +1,11 @@
-# Copyright 2018 Gentoo Foundation
+# Copyright 2018-2021 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 import os
 import signal
 
 from _emerge.AsynchronousTask import AsynchronousTask
+from portage.util.futures import asyncio
 
 
 class AsyncTaskFuture(AsynchronousTask):
@@ -16,6 +17,7 @@ class AsyncTaskFuture(AsynchronousTask):
     __slots__ = ("future",)
 
     def _start(self):
+        self.future = asyncio.ensure_future(self.future, self.scheduler)
         self.future.add_done_callback(self._done_callback)
 
     def _cancel(self):

Reply via email to