Our minimum python is now 3.9, so back compat with python 3.6 is no longer required.
Signed-off-by: Daniel P. Berrangé <berra...@redhat.com> --- python/qemu/qmp/protocol.py | 3 +-- python/qemu/qmp/util.py | 29 ----------------------------- 2 files changed, 1 insertion(+), 31 deletions(-) diff --git a/python/qemu/qmp/protocol.py b/python/qemu/qmp/protocol.py index 9a7ada4a1e..deb6b20d29 100644 --- a/python/qemu/qmp/protocol.py +++ b/python/qemu/qmp/protocol.py @@ -41,7 +41,6 @@ flush, pretty_traceback, upper_half, - wait_closed, ) @@ -830,7 +829,7 @@ async def _bh_close_stream(self, error_pathway: bool = False) -> None: self.logger.debug("Waiting for StreamWriter to close ...") try: - await wait_closed(self._writer) + await self._writer.wait_closed() except Exception: # pylint: disable=broad-except # It's hard to tell if the Stream is already closed or # not. Even if one of the tasks has failed, it may have diff --git a/python/qemu/qmp/util.py b/python/qemu/qmp/util.py index 39fc341f2f..b5e9750576 100644 --- a/python/qemu/qmp/util.py +++ b/python/qemu/qmp/util.py @@ -104,35 +104,6 @@ def create_task(coro: Coroutine[Any, Any, T], return asyncio.ensure_future(coro, loop=loop) -async def wait_closed(writer: asyncio.StreamWriter) -> None: - """ - Python 3.6-compatible `asyncio.StreamWriter.wait_closed` wrapper. - - :param writer: The `asyncio.StreamWriter` to wait on. - """ - if sys.version_info >= (3, 7): - await writer.wait_closed() - return - - # Python 3.6 - transport = writer.transport - assert isinstance(transport, asyncio.WriteTransport) - - while not transport.is_closing(): - await asyncio.sleep(0) - - # This is an ugly workaround, but it's the best I can come up with. - sock = transport.get_extra_info('socket') - - if sock is None: - # Our transport doesn't have a socket? ... - # Nothing we can reasonably do. - return - - while sock.fileno() != -1: - await asyncio.sleep(0) - - def asyncio_run(coro: Coroutine[Any, Any, T], *, debug: bool = False) -> T: """ Python 3.6-compatible `asyncio.run` wrapper. -- 2.49.0