diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-07-21 09:35:53 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-07-21 19:24:29 +0100 |
commit | 13a03f2e9c0c94a083664d0081296f74746a6746 (patch) | |
tree | bab3da0710ff118d229cb3ed71d1302acacf7794 | |
parent | 4db62dff9fcf95b7b507df29898d830db13cfaff (diff) | |
download | poky-13a03f2e9c0c94a083664d0081296f74746a6746.tar.gz |
bitbake: command/runqueue: Fix shutdown logic
If you hit Ctrl+C at the right point, the system processes the request
but merrily continues building. It turns out finish_runqueue() is called
but this doesn't stop the later generation and execution of the
runqueue.
This patch adjusts some of the conditionals to ensure the build really
does stop.
(Bitbake rev: 39b08c604ba713100e174c136f81f18eca6ef33d)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | bitbake/lib/bb/command.py | 2 | ||||
-rw-r--r-- | bitbake/lib/bb/runqueue.py | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/bitbake/lib/bb/command.py b/bitbake/lib/bb/command.py index 84fcdf9433..d797fcf930 100644 --- a/bitbake/lib/bb/command.py +++ b/bitbake/lib/bb/command.py | |||
@@ -86,7 +86,7 @@ class Command: | |||
86 | 86 | ||
87 | def runAsyncCommand(self): | 87 | def runAsyncCommand(self): |
88 | try: | 88 | try: |
89 | if self.cooker.state == bb.cooker.state.error: | 89 | if self.cooker.state in (bb.cooker.state.error, bb.cooker.state.shutdown, bb.cooker.state.forceshutdown): |
90 | return False | 90 | return False |
91 | if self.currentAsyncCommand is not None: | 91 | if self.currentAsyncCommand is not None: |
92 | (command, options) = self.currentAsyncCommand | 92 | (command, options) = self.currentAsyncCommand |
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index 4ea4970127..f68a11d90d 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py | |||
@@ -1065,7 +1065,7 @@ class RunQueue: | |||
1065 | if self.state is runQueueCleanUp: | 1065 | if self.state is runQueueCleanUp: |
1066 | self.rqexe.finish() | 1066 | self.rqexe.finish() |
1067 | 1067 | ||
1068 | if self.state is runQueueComplete or self.state is runQueueFailed: | 1068 | if (self.state is runQueueComplete or self.state is runQueueFailed) and self.rqexe: |
1069 | self.teardown_workers() | 1069 | self.teardown_workers() |
1070 | if self.rqexe.stats.failed: | 1070 | if self.rqexe.stats.failed: |
1071 | logger.info("Tasks Summary: Attempted %d tasks of which %d didn't need to be rerun and %d failed.", self.rqexe.stats.completed + self.rqexe.stats.failed, self.rqexe.stats.skipped, self.rqexe.stats.failed) | 1071 | logger.info("Tasks Summary: Attempted %d tasks of which %d didn't need to be rerun and %d failed.", self.rqexe.stats.completed + self.rqexe.stats.failed, self.rqexe.stats.skipped, self.rqexe.stats.failed) |
@@ -1106,6 +1106,7 @@ class RunQueue: | |||
1106 | 1106 | ||
1107 | def finish_runqueue(self, now = False): | 1107 | def finish_runqueue(self, now = False): |
1108 | if not self.rqexe: | 1108 | if not self.rqexe: |
1109 | self.state = runQueueComplete | ||
1109 | return | 1110 | return |
1110 | 1111 | ||
1111 | if now: | 1112 | if now: |