diff options
-rw-r--r-- | bitbake/lib/bb/runqueue.py | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index dac0cd9cb9..c1c4fd1b81 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py | |||
@@ -1693,7 +1693,7 @@ def process_setscene_whitelist(rq, rqdata, stampcache, sched, rqex): | |||
1693 | def check_norun_task(tid, showerror=False): | 1693 | def check_norun_task(tid, showerror=False): |
1694 | (mc, fn, taskname, taskfn) = split_tid_mcfn(tid) | 1694 | (mc, fn, taskname, taskfn) = split_tid_mcfn(tid) |
1695 | # Ignore covered tasks | 1695 | # Ignore covered tasks |
1696 | if tid in rqex.scenequeue_covered: | 1696 | if tid in rqex.tasks_covered: |
1697 | return False | 1697 | return False |
1698 | # Ignore stamped tasks | 1698 | # Ignore stamped tasks |
1699 | if rq.check_stamp_task(tid, taskname, cache=stampcache): | 1699 | if rq.check_stamp_task(tid, taskname, cache=stampcache): |
@@ -1768,7 +1768,10 @@ class RunQueueExecute: | |||
1768 | if self.number_tasks <= 0: | 1768 | if self.number_tasks <= 0: |
1769 | bb.fatal("Invalid BB_NUMBER_THREADS %s" % self.number_tasks) | 1769 | bb.fatal("Invalid BB_NUMBER_THREADS %s" % self.number_tasks) |
1770 | 1770 | ||
1771 | # List of setscene tasks which we've covered | ||
1771 | self.scenequeue_covered = set() | 1772 | self.scenequeue_covered = set() |
1773 | # List of tasks which are covered (including setscene ones) | ||
1774 | self.tasks_covered = set() | ||
1772 | self.scenequeue_notcovered = set() | 1775 | self.scenequeue_notcovered = set() |
1773 | self.scenequeue_notneeded = set() | 1776 | self.scenequeue_notneeded = set() |
1774 | 1777 | ||
@@ -1958,7 +1961,7 @@ class RunQueueExecute: | |||
1958 | if task is not None: | 1961 | if task is not None: |
1959 | (mc, fn, taskname, taskfn) = split_tid_mcfn(task) | 1962 | (mc, fn, taskname, taskfn) = split_tid_mcfn(task) |
1960 | 1963 | ||
1961 | if task in self.scenequeue_covered: | 1964 | if task in self.tasks_covered: |
1962 | logger.debug(2, "Setscene covered task %s", task) | 1965 | logger.debug(2, "Setscene covered task %s", task) |
1963 | self.task_skip(task, "covered") | 1966 | self.task_skip(task, "covered") |
1964 | return True | 1967 | return True |
@@ -2089,6 +2092,7 @@ class RunQueueExecute: | |||
2089 | 2092 | ||
2090 | logger.debug(1, 'Found task %s which could be accelerated', task) | 2093 | logger.debug(1, 'Found task %s which could be accelerated', task) |
2091 | self.scenequeue_covered.add(task) | 2094 | self.scenequeue_covered.add(task) |
2095 | self.tasks_covered.add(task) | ||
2092 | self.scenequeue_updatecounters(task) | 2096 | self.scenequeue_updatecounters(task) |
2093 | 2097 | ||
2094 | def sq_check_taskfail(self, task): | 2098 | def sq_check_taskfail(self, task): |
@@ -2500,24 +2504,24 @@ def start_runqueue_tasks(rqexec): | |||
2500 | for tid in rqexec.rqdata.runtaskentries: | 2504 | for tid in rqexec.rqdata.runtaskentries: |
2501 | if len(rqexec.rqdata.runtaskentries[tid].depends) == 0: | 2505 | if len(rqexec.rqdata.runtaskentries[tid].depends) == 0: |
2502 | rqexec.setbuildable(tid) | 2506 | rqexec.setbuildable(tid) |
2503 | if len(rqexec.rqdata.runtaskentries[tid].revdeps) > 0 and rqexec.rqdata.runtaskentries[tid].revdeps.issubset(rqexec.scenequeue_covered): | 2507 | if len(rqexec.rqdata.runtaskentries[tid].revdeps) > 0 and rqexec.rqdata.runtaskentries[tid].revdeps.issubset(rqexec.tasks_covered): |
2504 | rqexec.scenequeue_covered.add(tid) | 2508 | rqexec.tasks_covered.add(tid) |
2505 | 2509 | ||
2506 | found = True | 2510 | found = True |
2507 | while found: | 2511 | while found: |
2508 | found = False | 2512 | found = False |
2509 | for tid in rqexec.rqdata.runtaskentries: | 2513 | for tid in rqexec.rqdata.runtaskentries: |
2510 | if tid in rqexec.scenequeue_covered: | 2514 | if tid in rqexec.tasks_covered: |
2511 | continue | 2515 | continue |
2512 | logger.debug(1, 'Considering %s: %s' % (tid, str(rqexec.rqdata.runtaskentries[tid].revdeps))) | 2516 | logger.debug(1, 'Considering %s: %s' % (tid, str(rqexec.rqdata.runtaskentries[tid].revdeps))) |
2513 | 2517 | ||
2514 | if len(rqexec.rqdata.runtaskentries[tid].revdeps) > 0 and rqexec.rqdata.runtaskentries[tid].revdeps.issubset(rqexec.scenequeue_covered): | 2518 | if len(rqexec.rqdata.runtaskentries[tid].revdeps) > 0 and rqexec.rqdata.runtaskentries[tid].revdeps.issubset(rqexec.tasks_covered): |
2515 | if tid in rqexec.scenequeue_notcovered: | 2519 | if tid in rqexec.scenequeue_notcovered: |
2516 | continue | 2520 | continue |
2517 | found = True | 2521 | found = True |
2518 | rqexec.scenequeue_covered.add(tid) | 2522 | rqexec.tasks_covered.add(tid) |
2519 | 2523 | ||
2520 | logger.debug(1, 'Skip list %s', sorted(rqexec.scenequeue_covered)) | 2524 | logger.debug(1, 'Skip list %s', sorted(rqexec.tasks_covered)) |
2521 | 2525 | ||
2522 | for task in self.rq.scenequeue_notcovered: | 2526 | for task in self.rq.scenequeue_notcovered: |
2523 | logger.debug(1, 'Not skipping task %s', task) | 2527 | logger.debug(1, 'Not skipping task %s', task) |