mirror of
https://github.com/qemu/qemu.git
synced 2025-08-13 18:46:38 +00:00
python/aqmp: stop the server during disconnect()
Before we allow the full separation of starting the server and accepting new connections, make sure that the disconnect cleans up the server and its new state, too. Signed-off-by: John Snow <jsnow@redhat.com> Acked-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Message-id: 20220225205948.3693480-8-jsnow@redhat.com Signed-off-by: John Snow <jsnow@redhat.com>
This commit is contained in:
parent
5e9902a030
commit
32c5abf051
@ -432,7 +432,7 @@ def _set_state(self, state: Runstate) -> None:
|
||||
self._runstate_event.set()
|
||||
self._runstate_event.clear()
|
||||
|
||||
@bottom_half # However, it does not run from the R/W tasks.
|
||||
@bottom_half
|
||||
async def _stop_server(self) -> None:
|
||||
"""
|
||||
Stop listening for / accepting new incoming connections.
|
||||
@ -709,6 +709,7 @@ def _paranoid_task_erase(task: Optional['asyncio.Future[_U]']
|
||||
|
||||
self._reader = None
|
||||
self._writer = None
|
||||
self._accepted = None
|
||||
|
||||
# NB: _runstate_changed cannot be cleared because we still need it to
|
||||
# send the final runstate changed event ...!
|
||||
@ -732,6 +733,9 @@ async def _bh_disconnect(self) -> None:
|
||||
def _done(task: Optional['asyncio.Future[Any]']) -> bool:
|
||||
return task is not None and task.done()
|
||||
|
||||
# If the server is running, stop it.
|
||||
await self._stop_server()
|
||||
|
||||
# Are we already in an error pathway? If either of the tasks are
|
||||
# already done, or if we have no tasks but a reader/writer; we
|
||||
# must be.
|
||||
|
Loading…
Reference in New Issue
Block a user