diff options
Diffstat (limited to 'bitbake/lib/bb/runqueue.py')
-rw-r--r-- | bitbake/lib/bb/runqueue.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index 61608ac603..2179ee1302 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py | |||
@@ -2210,6 +2210,9 @@ class RunQueueExecute: | |||
2210 | # Find the next setscene to run | 2210 | # Find the next setscene to run |
2211 | for nexttask in self.sorted_setscene_tids: | 2211 | for nexttask in self.sorted_setscene_tids: |
2212 | if nexttask in self.sq_buildable and nexttask not in self.sq_running and self.sqdata.stamps[nexttask] not in self.build_stamps.values() and nexttask not in self.sq_harddep_deferred: | 2212 | if nexttask in self.sq_buildable and nexttask not in self.sq_running and self.sqdata.stamps[nexttask] not in self.build_stamps.values() and nexttask not in self.sq_harddep_deferred: |
2213 | if nexttask in self.sq_deferred and self.sq_deferred[nexttask] not in self.runq_complete: | ||
2214 | # Skip deferred tasks quickly before the 'expensive' tests below - this is key to performant multiconfig builds | ||
2215 | continue | ||
2213 | if nexttask not in self.sqdata.unskippable and self.sqdata.sq_revdeps[nexttask] and \ | 2216 | if nexttask not in self.sqdata.unskippable and self.sqdata.sq_revdeps[nexttask] and \ |
2214 | nexttask not in self.sq_needed_harddeps and \ | 2217 | nexttask not in self.sq_needed_harddeps and \ |
2215 | self.sqdata.sq_revdeps[nexttask].issubset(self.scenequeue_covered) and \ | 2218 | self.sqdata.sq_revdeps[nexttask].issubset(self.scenequeue_covered) and \ |
@@ -2239,8 +2242,7 @@ class RunQueueExecute: | |||
2239 | if t in self.runq_running and t not in self.runq_complete: | 2242 | if t in self.runq_running and t not in self.runq_complete: |
2240 | continue | 2243 | continue |
2241 | if nexttask in self.sq_deferred: | 2244 | if nexttask in self.sq_deferred: |
2242 | if self.sq_deferred[nexttask] not in self.runq_complete: | 2245 | # Deferred tasks that were still deferred were skipped above so we now need to process |
2243 | continue | ||
2244 | logger.debug("Task %s no longer deferred" % nexttask) | 2246 | logger.debug("Task %s no longer deferred" % nexttask) |
2245 | del self.sq_deferred[nexttask] | 2247 | del self.sq_deferred[nexttask] |
2246 | valid = self.rq.validate_hashes(set([nexttask]), self.cooker.data, 0, False, summary=False) | 2248 | valid = self.rq.validate_hashes(set([nexttask]), self.cooker.data, 0, False, summary=False) |