qemurunner: Shut down logging thread successfully when test fails

Before this change on a test failure an exception would be generated due
to runqemu being killed before the logging thread which was on the other
end of the socket.

The exception was actually correct saying there was no data on a socket
marked readable, but this was because the qemu process was killed before
the listener thread.

(From OE-Core rev: 6497fddf7f6c4a59e16dab4a9daeb3614a61a8dc)

Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Randy Witt 2015-08-25 13:58:47 -07:00 committed by Richard Purdie
parent 15c8835445
commit 55077eac1e
1 changed files with 2 additions and 1 deletions

View File

@ -209,6 +209,7 @@ class QemuRunner:
def stop(self):
self.stop_thread()
if self.runqemu:
logger.info("Sending SIGTERM to runqemu")
try:
@ -228,7 +229,6 @@ class QemuRunner:
self.server_socket = None
self.qemupid = None
self.ip = None
self.stop_thread()
def stop_thread(self):
if self.thread and self.thread.is_alive():
@ -403,6 +403,7 @@ class LoggingThread(threading.Thread):
elif self.serversock.fileno() == event[0]:
self.logger.info("Connection request received")
self.readsock, _ = self.serversock.accept()
self.readsock.setblocking(0)
poll.unregister(self.serversock.fileno())
poll.register(self.readsock.fileno())