diff options
-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 3462ed4457..9f3abff85f 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py | |||
@@ -2195,6 +2195,9 @@ class RunQueueExecute: | |||
2195 | # Find the next setscene to run | 2195 | # Find the next setscene to run |
2196 | for nexttask in self.sorted_setscene_tids: | 2196 | for nexttask in self.sorted_setscene_tids: |
2197 | 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: | 2197 | 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: |
2198 | if nexttask in self.sq_deferred and self.sq_deferred[nexttask] not in self.runq_complete: | ||
2199 | # Skip deferred tasks quickly before the 'expensive' tests below - this is key to performant multiconfig builds | ||
2200 | continue | ||
2198 | if nexttask not in self.sqdata.unskippable and self.sqdata.sq_revdeps[nexttask] and \ | 2201 | if nexttask not in self.sqdata.unskippable and self.sqdata.sq_revdeps[nexttask] and \ |
2199 | nexttask not in self.sq_needed_harddeps and \ | 2202 | nexttask not in self.sq_needed_harddeps and \ |
2200 | self.sqdata.sq_revdeps[nexttask].issubset(self.scenequeue_covered) and \ | 2203 | self.sqdata.sq_revdeps[nexttask].issubset(self.scenequeue_covered) and \ |
@@ -2224,8 +2227,7 @@ class RunQueueExecute: | |||
2224 | if t in self.runq_running and t not in self.runq_complete: | 2227 | if t in self.runq_running and t not in self.runq_complete: |
2225 | continue | 2228 | continue |
2226 | if nexttask in self.sq_deferred: | 2229 | if nexttask in self.sq_deferred: |
2227 | if self.sq_deferred[nexttask] not in self.runq_complete: | 2230 | # Deferred tasks that were still deferred were skipped above so we now need to process |
2228 | continue | ||
2229 | logger.debug("Task %s no longer deferred" % nexttask) | 2231 | logger.debug("Task %s no longer deferred" % nexttask) |
2230 | del self.sq_deferred[nexttask] | 2232 | del self.sq_deferred[nexttask] |
2231 | valid = self.rq.validate_hashes(set([nexttask]), self.cooker.data, 0, False, summary=False) | 2233 | valid = self.rq.validate_hashes(set([nexttask]), self.cooker.data, 0, False, summary=False) |