mirror of https://github.com/xemu-project/xemu.git
python/machine.py: Add _early_cleanup hook
Some parts of cleanup need to occur prior to shutdown, otherwise shutdown might break. Move this into a suitably named method/callback. Signed-off-by: John Snow <jsnow@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Cleber Rosa <crosa@redhat.com> Tested-by: Cleber Rosa <crosa@redhat.com> Message-Id: <20200710050649.32434-4-jsnow@redhat.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
This commit is contained in:
parent
671940e633
commit
e2c97f1612
|
@ -365,6 +365,17 @@ class QEMUMachine:
|
|||
close_fds=False)
|
||||
self._post_launch()
|
||||
|
||||
def _early_cleanup(self) -> None:
|
||||
"""
|
||||
Perform any cleanup that needs to happen before the VM exits.
|
||||
"""
|
||||
# If we keep the console socket open, we may deadlock waiting
|
||||
# for QEMU to exit, while QEMU is waiting for the socket to
|
||||
# become writeable.
|
||||
if self._console_socket is not None:
|
||||
self._console_socket.close()
|
||||
self._console_socket = None
|
||||
|
||||
def wait(self):
|
||||
"""
|
||||
Wait for the VM to power off
|
||||
|
@ -376,12 +387,7 @@ class QEMUMachine:
|
|||
"""
|
||||
Terminate the VM and clean up
|
||||
"""
|
||||
# If we keep the console socket open, we may deadlock waiting
|
||||
# for QEMU to exit, while QEMU is waiting for the socket to
|
||||
# become writeable.
|
||||
if self._console_socket is not None:
|
||||
self._console_socket.close()
|
||||
self._console_socket = None
|
||||
self._early_cleanup()
|
||||
|
||||
if self.is_running():
|
||||
if hard:
|
||||
|
|
Loading…
Reference in New Issue