diff options
Diffstat (limited to 'meta/lib/oeqa/utils/qemurunner.py')
-rw-r--r-- | meta/lib/oeqa/utils/qemurunner.py | 12 |
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 | ||