diff options
author | John Snow <jsnow@redhat.com> | 2020-07-10 01:06:40 -0400 |
---|---|---|
committer | Philippe Mathieu-Daudé <philmd@redhat.com> | 2020-07-14 22:22:22 +0200 |
commit | e2c97f161294c702ee4a2dd08532d5df67f6bff4 (patch) | |
tree | f50b429e88c62db945c44d58b6684ee372872f19 /python | |
parent | 671940e633b83ac489e0b4bb407749723ff8a879 (diff) | |
download | qemu-e2c97f161294c702ee4a2dd08532d5df67f6bff4.zip qemu-e2c97f161294c702ee4a2dd08532d5df67f6bff4.tar.gz qemu-e2c97f161294c702ee4a2dd08532d5df67f6bff4.tar.bz2 |
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>
Diffstat (limited to 'python')
-rw-r--r-- | python/qemu/machine.py | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/python/qemu/machine.py b/python/qemu/machine.py index d3faa9a..127926b 100644 --- a/python/qemu/machine.py +++ b/python/qemu/machine.py @@ -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: |