python: backport 'drop Python3.6 workarounds'
Now that the minimum version is 3.7, drop some of the 3.6-specific hacks we've been carrying. A single remaining compatibility hack concerning 3.6's lack of @asynccontextmanager is addressed in the following commit. Signed-off-by: John Snow <jsnow@redhat.com> cherry picked from commit python-qemu-qmp@3e8e34e594cfc6b707e6f67959166acde4b421b8 Signed-off-by: John Snow <jsnow@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
094ded5227
commit
f9d2e0a3bd
4 changed files with 17 additions and 119 deletions
|
|
@ -36,13 +36,10 @@ from typing import (
|
|||
from .error import QMPError
|
||||
from .util import (
|
||||
bottom_half,
|
||||
create_task,
|
||||
exception_summary,
|
||||
flush,
|
||||
is_closing,
|
||||
pretty_traceback,
|
||||
upper_half,
|
||||
wait_closed,
|
||||
)
|
||||
|
||||
|
||||
|
|
@ -682,8 +679,8 @@ class AsyncProtocol(Generic[T]):
|
|||
reader_coro = self._bh_loop_forever(self._bh_recv_message, 'Reader')
|
||||
writer_coro = self._bh_loop_forever(self._bh_send_message, 'Writer')
|
||||
|
||||
self._reader_task = create_task(reader_coro)
|
||||
self._writer_task = create_task(writer_coro)
|
||||
self._reader_task = asyncio.create_task(reader_coro)
|
||||
self._writer_task = asyncio.create_task(writer_coro)
|
||||
|
||||
self._bh_tasks = asyncio.gather(
|
||||
self._reader_task,
|
||||
|
|
@ -708,7 +705,7 @@ class AsyncProtocol(Generic[T]):
|
|||
if not self._dc_task:
|
||||
self._set_state(Runstate.DISCONNECTING)
|
||||
self.logger.debug("Scheduling disconnect.")
|
||||
self._dc_task = create_task(self._bh_disconnect())
|
||||
self._dc_task = asyncio.create_task(self._bh_disconnect())
|
||||
|
||||
@upper_half
|
||||
async def _wait_disconnect(self) -> None:
|
||||
|
|
@ -844,13 +841,13 @@ class AsyncProtocol(Generic[T]):
|
|||
if not self._writer:
|
||||
return
|
||||
|
||||
if not is_closing(self._writer):
|
||||
if not self._writer.is_closing():
|
||||
self.logger.debug("Closing StreamWriter.")
|
||||
self._writer.close()
|
||||
|
||||
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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue