python/machine.py: Close QMP socket in cleanup
It's not important to do this before waiting for the process to exit, so
it can be done during generic post-shutdown cleanup.
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-3-jsnow@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
diff --git a/python/qemu/machine.py b/python/qemu/machine.py
index ca1f211..d3faa9a 100644
--- a/python/qemu/machine.py
+++ b/python/qemu/machine.py
@@ -294,6 +294,10 @@
self._qmp.accept()
def _post_shutdown(self):
+ if self._qmp:
+ self._qmp.close()
+ self._qmp = None
+
self._load_io_log()
if self._qemu_log_file is not None:
@@ -366,8 +370,6 @@
Wait for the VM to power off
"""
self._popen.wait()
- if self._qmp:
- self._qmp.close()
self._post_shutdown()
def shutdown(self, has_quit=False, hard=False):
@@ -388,7 +390,6 @@
try:
if not has_quit:
self._qmp.cmd('quit')
- self._qmp.close()
self._popen.wait(timeout=3)
except:
self._popen.kill()