commit: ce2247b4de0342d7802d4744904bb82870cac1ac Author: Zac Medico <zmedico <AT> gentoo <DOT> org> AuthorDate: Sun Mar 7 14:35:57 2021 +0000 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> CommitDate: Sun Mar 7 14:37:54 2021 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=ce2247b4
PipeLogger: Use async and await syntax Signed-off-by: Zac Medico <zmedico <AT> gentoo.org> lib/portage/util/_async/PipeLogger.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/lib/portage/util/_async/PipeLogger.py b/lib/portage/util/_async/PipeLogger.py index e8203268c..b7c03043f 100644 --- a/lib/portage/util/_async/PipeLogger.py +++ b/lib/portage/util/_async/PipeLogger.py @@ -1,4 +1,4 @@ -# Copyright 2008-2020 Gentoo Authors +# Copyright 2008-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 import fcntl @@ -9,7 +9,6 @@ import portage from portage import os, _encodings, _unicode_encode from portage.util.futures import asyncio from portage.util.futures._asyncio.streams import _writer -from portage.util.futures.compat_coroutine import coroutine from portage.util.futures.unix_events import _set_nonblocking from _emerge.AbstractPollTask import AbstractPollTask @@ -53,7 +52,7 @@ class PipeLogger(AbstractPollTask): fcntl.fcntl(fd, fcntl.F_SETFL, fcntl.fcntl(fd, fcntl.F_GETFL) | os.O_NONBLOCK) - self._io_loop_task = asyncio.ensure_future(self._io_loop(self.input_fd, loop=self.scheduler), loop=self.scheduler) + self._io_loop_task = asyncio.ensure_future(self._io_loop(self.input_fd), loop=self.scheduler) self._io_loop_task.add_done_callback(self._io_loop_done) self._registered = True @@ -62,8 +61,7 @@ class PipeLogger(AbstractPollTask): if self.returncode is None: self.returncode = self._cancelled_returncode - @coroutine - def _io_loop(self, input_file, loop=None): + async def _io_loop(self, input_file): background = self.background stdout_fd = self.stdout_fd log_file = self._log_file @@ -77,7 +75,7 @@ class PipeLogger(AbstractPollTask): future = self.scheduler.create_future() self.scheduler.add_reader(fd, future.set_result, None) try: - yield future + await future finally: # The loop and input file may have been closed. if not self.scheduler.is_closed(): @@ -130,7 +128,7 @@ class PipeLogger(AbstractPollTask): if self._log_file_nb: # Use the _writer function which uses os.write, since the # log_file.write method looses data when an EAGAIN occurs. - yield _writer(log_file, buf, loop=self.scheduler) + await _writer(log_file, buf) else: # For gzip.GzipFile instances, the above _writer function # will not work because data written directly to the file