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) |
