summaryrefslogtreecommitdiffstats
path: root/meta/lib/oeqa/utils/qemurunner.py
diff options
context:
space:
mode:
Diffstat (limited to 'meta/lib/oeqa/utils/qemurunner.py')
-rw-r--r--meta/lib/oeqa/utils/qemurunner.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/meta/lib/oeqa/utils/qemurunner.py b/meta/lib/oeqa/utils/qemurunner.py
index 77ec939ad7..410789b815 100644
--- a/meta/lib/oeqa/utils/qemurunner.py
+++ b/meta/lib/oeqa/utils/qemurunner.py
@@ -467,6 +467,10 @@ class QemuRunner:
467 self.thread.stop() 467 self.thread.stop()
468 self.thread.join() 468 self.thread.join()
469 469
470 def allowexit(self):
471 if self.thread:
472 self.thread.allowexit()
473
470 def restart(self, qemuparams = None): 474 def restart(self, qemuparams = None):
471 self.logger.warning("Restarting qemu process") 475 self.logger.warning("Restarting qemu process")
472 if self.runqemu.poll() is None: 476 if self.runqemu.poll() is None:
@@ -560,6 +564,7 @@ class LoggingThread(threading.Thread):
560 self.logger = logger 564 self.logger = logger
561 self.readsock = None 565 self.readsock = None
562 self.running = False 566 self.running = False
567 self.canexit = False
563 568
564 self.errorevents = select.POLLERR | select.POLLHUP | select.POLLNVAL 569 self.errorevents = select.POLLERR | select.POLLHUP | select.POLLNVAL
565 self.readevents = select.POLLIN | select.POLLPRI 570 self.readevents = select.POLLIN | select.POLLPRI
@@ -593,6 +598,9 @@ class LoggingThread(threading.Thread):
593 self.close_ignore_error(self.writepipe) 598 self.close_ignore_error(self.writepipe)
594 self.running = False 599 self.running = False
595 600
601 def allowexit(self):
602 self.canexit = True
603
596 def eventloop(self): 604 def eventloop(self):
597 poll = select.poll() 605 poll = select.poll()
598 event_read_mask = self.errorevents | self.readevents 606 event_read_mask = self.errorevents | self.readevents
@@ -649,7 +657,9 @@ class LoggingThread(threading.Thread):
649 # happened. But for this code it counts as an 657 # happened. But for this code it counts as an
650 # error since the connection shouldn't go away 658 # error since the connection shouldn't go away
651 # until qemu exits. 659 # until qemu exits.
652 raise Exception("Console connection closed unexpectedly") 660 if not self.canexit:
661 raise Exception("Console connection closed unexpectedly")
662 return ''
653 663
654 return data 664 return data
655 665