]> code.ossystems Code Review - openembedded-core.git/commitdiff
qemurunner: Shut down logging thread successfully when test fails
authorRandy Witt <randy.e.witt@linux.intel.com>
Tue, 25 Aug 2015 20:58:47 +0000 (13:58 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 25 Aug 2015 22:23:33 +0000 (23:23 +0100)
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.

Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/lib/oeqa/utils/qemurunner.py

index 33f31852a77def4a316f94eca58dd6c7705003a2..d079072af800d5e42d7cb10383f6cd07f9a78a75 100644 (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())