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>
This commit is contained in:
John Snow 2020-07-10 01:06:39 -04:00 committed by Philippe Mathieu-Daudé
parent 14661d93d7
commit 671940e633

View file

@ -294,6 +294,10 @@ class QEMUMachine:
self._qmp.accept() self._qmp.accept()
def _post_shutdown(self): def _post_shutdown(self):
if self._qmp:
self._qmp.close()
self._qmp = None
self._load_io_log() self._load_io_log()
if self._qemu_log_file is not None: if self._qemu_log_file is not None:
@ -366,8 +370,6 @@ class QEMUMachine:
Wait for the VM to power off Wait for the VM to power off
""" """
self._popen.wait() self._popen.wait()
if self._qmp:
self._qmp.close()
self._post_shutdown() self._post_shutdown()
def shutdown(self, has_quit=False, hard=False): def shutdown(self, has_quit=False, hard=False):
@ -388,7 +390,6 @@ class QEMUMachine:
try: try:
if not has_quit: if not has_quit:
self._qmp.cmd('quit') self._qmp.cmd('quit')
self._qmp.close()
self._popen.wait(timeout=3) self._popen.wait(timeout=3)
except: except:
self._popen.kill() self._popen.kill()