Commit 17589cae authored by Amador Pahim's avatar Amador Pahim Committed by Eduardo Habkost
Browse files

qemu.py: use poll() instead of 'returncode'



The 'returncode' Popen attribute is not guaranteed to be updated. It
actually depends on a call to either poll(), wait() or communicate().

On the other hand, poll() will: "Check if child process has terminated.
Set and return returncode attribute."

Let's use the poll() to check whether the process is running and to get
the updated process exit code, when the process is finished.

Reviewed-by: default avatarFam Zheng <famz@redhat.com>
eviewed-by: default avatarEduardo Habkost <ehabkost@redhat.com>
Signed-off-by: default avatarAmador Pahim <apahim@redhat.com>
Message-Id: <20180122205033.24893-5-apahim@redhat.com>
Signed-off-by: default avatarEduardo Habkost <ehabkost@redhat.com>
parent 04a963b4
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -150,12 +150,12 @@ class QEMUMachine(object):
            raise

    def is_running(self):
        return self._popen is not None and self._popen.returncode is None
        return self._popen is not None and self._popen.poll() is None

    def exitcode(self):
        if self._popen is None:
            return None
        return self._popen.returncode
        return self._popen.poll()

    def get_pid(self):
        if not self.is_running():