diff options
Diffstat (limited to 'bitbake/lib/bb/runqueue.py')
-rw-r--r-- | bitbake/lib/bb/runqueue.py | 66 |
1 files changed, 33 insertions, 33 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index 10511a09dc..87c00462c1 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py | |||
@@ -547,7 +547,7 @@ class RunQueueData: | |||
547 | next_points.append(revdep) | 547 | next_points.append(revdep) |
548 | task_done[revdep] = True | 548 | task_done[revdep] = True |
549 | endpoints = next_points | 549 | endpoints = next_points |
550 | if len(next_points) == 0: | 550 | if not next_points: |
551 | break | 551 | break |
552 | 552 | ||
553 | # Circular dependency sanity check | 553 | # Circular dependency sanity check |
@@ -589,7 +589,7 @@ class RunQueueData: | |||
589 | 589 | ||
590 | found = False | 590 | found = False |
591 | for mc in self.taskData: | 591 | for mc in self.taskData: |
592 | if len(taskData[mc].taskentries) > 0: | 592 | if taskData[mc].taskentries: |
593 | found = True | 593 | found = True |
594 | break | 594 | break |
595 | if not found: | 595 | if not found: |
@@ -773,7 +773,7 @@ class RunQueueData: | |||
773 | # Find the dependency chain endpoints | 773 | # Find the dependency chain endpoints |
774 | endpoints = set() | 774 | endpoints = set() |
775 | for tid in self.runtaskentries: | 775 | for tid in self.runtaskentries: |
776 | if len(deps[tid]) == 0: | 776 | if not deps[tid]: |
777 | endpoints.add(tid) | 777 | endpoints.add(tid) |
778 | # Iterate the chains collating dependencies | 778 | # Iterate the chains collating dependencies |
779 | while endpoints: | 779 | while endpoints: |
@@ -784,11 +784,11 @@ class RunQueueData: | |||
784 | cumulativedeps[dep].update(cumulativedeps[tid]) | 784 | cumulativedeps[dep].update(cumulativedeps[tid]) |
785 | if tid in deps[dep]: | 785 | if tid in deps[dep]: |
786 | deps[dep].remove(tid) | 786 | deps[dep].remove(tid) |
787 | if len(deps[dep]) == 0: | 787 | if not deps[dep]: |
788 | next.add(dep) | 788 | next.add(dep) |
789 | endpoints = next | 789 | endpoints = next |
790 | #for tid in deps: | 790 | #for tid in deps: |
791 | # if len(deps[tid]) != 0: | 791 | # if deps[tid]: |
792 | # bb.warn("Sanity test failure, dependencies left for %s (%s)" % (tid, deps[tid])) | 792 | # bb.warn("Sanity test failure, dependencies left for %s (%s)" % (tid, deps[tid])) |
793 | 793 | ||
794 | # Loop here since recrdeptasks can depend upon other recrdeptasks and we have to | 794 | # Loop here since recrdeptasks can depend upon other recrdeptasks and we have to |
@@ -958,7 +958,7 @@ class RunQueueData: | |||
958 | delcount[tid] = self.runtaskentries[tid] | 958 | delcount[tid] = self.runtaskentries[tid] |
959 | del self.runtaskentries[tid] | 959 | del self.runtaskentries[tid] |
960 | 960 | ||
961 | if len(self.runtaskentries) == 0: | 961 | if not self.runtaskentries: |
962 | bb.msg.fatal("RunQueue", "Could not find any tasks with the tasknames %s to run within the recipes of the taskgraphs of the targets %s" % (str(self.cooker.configuration.runall), str(self.targets))) | 962 | bb.msg.fatal("RunQueue", "Could not find any tasks with the tasknames %s to run within the recipes of the taskgraphs of the targets %s" % (str(self.cooker.configuration.runall), str(self.targets))) |
963 | 963 | ||
964 | self.init_progress_reporter.next_stage() | 964 | self.init_progress_reporter.next_stage() |
@@ -983,7 +983,7 @@ class RunQueueData: | |||
983 | delcount[tid] = self.runtaskentries[tid] | 983 | delcount[tid] = self.runtaskentries[tid] |
984 | del self.runtaskentries[tid] | 984 | del self.runtaskentries[tid] |
985 | 985 | ||
986 | if len(self.runtaskentries) == 0: | 986 | if not self.runtaskentries: |
987 | bb.msg.fatal("RunQueue", "Could not find any tasks with the tasknames %s to run within the taskgraphs of the targets %s" % (str(self.cooker.configuration.runonly), str(self.targets))) | 987 | bb.msg.fatal("RunQueue", "Could not find any tasks with the tasknames %s to run within the taskgraphs of the targets %s" % (str(self.cooker.configuration.runonly), str(self.targets))) |
988 | 988 | ||
989 | # | 989 | # |
@@ -991,7 +991,7 @@ class RunQueueData: | |||
991 | # | 991 | # |
992 | 992 | ||
993 | # Check to make sure we still have tasks to run | 993 | # Check to make sure we still have tasks to run |
994 | if len(self.runtaskentries) == 0: | 994 | if not self.runtaskentries: |
995 | if not taskData[''].abort: | 995 | if not taskData[''].abort: |
996 | bb.msg.fatal("RunQueue", "All buildable tasks have been run but the build is incomplete (--continue mode). Errors for the tasks that failed will have been printed above.") | 996 | bb.msg.fatal("RunQueue", "All buildable tasks have been run but the build is incomplete (--continue mode). Errors for the tasks that failed will have been printed above.") |
997 | else: | 997 | else: |
@@ -1015,7 +1015,7 @@ class RunQueueData: | |||
1015 | endpoints = [] | 1015 | endpoints = [] |
1016 | for tid in self.runtaskentries: | 1016 | for tid in self.runtaskentries: |
1017 | revdeps = self.runtaskentries[tid].revdeps | 1017 | revdeps = self.runtaskentries[tid].revdeps |
1018 | if len(revdeps) == 0: | 1018 | if not revdeps: |
1019 | endpoints.append(tid) | 1019 | endpoints.append(tid) |
1020 | for dep in revdeps: | 1020 | for dep in revdeps: |
1021 | if dep in self.runtaskentries[tid].depends: | 1021 | if dep in self.runtaskentries[tid].depends: |
@@ -1188,9 +1188,9 @@ class RunQueueData: | |||
1188 | # Iterate over the task list and call into the siggen code | 1188 | # Iterate over the task list and call into the siggen code |
1189 | dealtwith = set() | 1189 | dealtwith = set() |
1190 | todeal = set(self.runtaskentries) | 1190 | todeal = set(self.runtaskentries) |
1191 | while len(todeal) > 0: | 1191 | while todeal: |
1192 | for tid in todeal.copy(): | 1192 | for tid in todeal.copy(): |
1193 | if len(self.runtaskentries[tid].depends - dealtwith) == 0: | 1193 | if not (self.runtaskentries[tid].depends - dealtwith): |
1194 | dealtwith.add(tid) | 1194 | dealtwith.add(tid) |
1195 | todeal.remove(tid) | 1195 | todeal.remove(tid) |
1196 | self.prepare_task_hash(tid) | 1196 | self.prepare_task_hash(tid) |
@@ -1500,10 +1500,10 @@ class RunQueue: | |||
1500 | self.rqexe = RunQueueExecute(self) | 1500 | self.rqexe = RunQueueExecute(self) |
1501 | 1501 | ||
1502 | # If we don't have any setscene functions, skip execution | 1502 | # If we don't have any setscene functions, skip execution |
1503 | if len(self.rqdata.runq_setscene_tids) == 0: | 1503 | if not self.rqdata.runq_setscene_tids: |
1504 | logger.info('No setscene tasks') | 1504 | logger.info('No setscene tasks') |
1505 | for tid in self.rqdata.runtaskentries: | 1505 | for tid in self.rqdata.runtaskentries: |
1506 | if len(self.rqdata.runtaskentries[tid].depends) == 0: | 1506 | if not self.rqdata.runtaskentries[tid].depends: |
1507 | self.rqexe.setbuildable(tid) | 1507 | self.rqexe.setbuildable(tid) |
1508 | self.rqexe.tasks_notcovered.add(tid) | 1508 | self.rqexe.tasks_notcovered.add(tid) |
1509 | self.rqexe.sqdone = True | 1509 | self.rqexe.sqdone = True |
@@ -1780,7 +1780,7 @@ class RunQueueExecute: | |||
1780 | bb.fatal("Invalid scheduler '%s'. Available schedulers: %s" % | 1780 | bb.fatal("Invalid scheduler '%s'. Available schedulers: %s" % |
1781 | (self.scheduler, ", ".join(obj.name for obj in schedulers))) | 1781 | (self.scheduler, ", ".join(obj.name for obj in schedulers))) |
1782 | 1782 | ||
1783 | #if len(self.rqdata.runq_setscene_tids) > 0: | 1783 | #if self.rqdata.runq_setscene_tids: |
1784 | self.sqdata = SQData() | 1784 | self.sqdata = SQData() |
1785 | build_scenequeue_data(self.sqdata, self.rqdata, self.rq, self.cooker, self.stampcache, self) | 1785 | build_scenequeue_data(self.sqdata, self.rqdata, self.rq, self.cooker, self.stampcache, self) |
1786 | 1786 | ||
@@ -1821,7 +1821,7 @@ class RunQueueExecute: | |||
1821 | # worker must have died? | 1821 | # worker must have died? |
1822 | pass | 1822 | pass |
1823 | 1823 | ||
1824 | if len(self.failed_tids) != 0: | 1824 | if self.failed_tids: |
1825 | self.rq.state = runQueueFailed | 1825 | self.rq.state = runQueueFailed |
1826 | return | 1826 | return |
1827 | 1827 | ||
@@ -1837,7 +1837,7 @@ class RunQueueExecute: | |||
1837 | self.rq.read_workers() | 1837 | self.rq.read_workers() |
1838 | return self.rq.active_fds() | 1838 | return self.rq.active_fds() |
1839 | 1839 | ||
1840 | if len(self.failed_tids) != 0: | 1840 | if self.failed_tids: |
1841 | self.rq.state = runQueueFailed | 1841 | self.rq.state = runQueueFailed |
1842 | return True | 1842 | return True |
1843 | 1843 | ||
@@ -2001,7 +2001,7 @@ class RunQueueExecute: | |||
2001 | if x not in self.tasks_scenequeue_done: | 2001 | if x not in self.tasks_scenequeue_done: |
2002 | logger.error("Task %s was never processed by the setscene code" % x) | 2002 | logger.error("Task %s was never processed by the setscene code" % x) |
2003 | err = True | 2003 | err = True |
2004 | if len(self.rqdata.runtaskentries[x].depends) == 0 and x not in self.runq_buildable: | 2004 | if not self.rqdata.runtaskentries[x].depends and x not in self.runq_buildable: |
2005 | logger.error("Task %s was never marked as buildable by the setscene code" % x) | 2005 | logger.error("Task %s was never marked as buildable by the setscene code" % x) |
2006 | err = True | 2006 | err = True |
2007 | return err | 2007 | return err |
@@ -2025,7 +2025,7 @@ class RunQueueExecute: | |||
2025 | # Find the next setscene to run | 2025 | # Find the next setscene to run |
2026 | for nexttask in self.sorted_setscene_tids: | 2026 | for nexttask in self.sorted_setscene_tids: |
2027 | if nexttask in self.sq_buildable and nexttask not in self.sq_running and self.sqdata.stamps[nexttask] not in self.build_stamps.values(): | 2027 | if nexttask in self.sq_buildable and nexttask not in self.sq_running and self.sqdata.stamps[nexttask] not in self.build_stamps.values(): |
2028 | if nexttask not in self.sqdata.unskippable and len(self.sqdata.sq_revdeps[nexttask]) > 0 and self.sqdata.sq_revdeps[nexttask].issubset(self.scenequeue_covered) and self.check_dependencies(nexttask, self.sqdata.sq_revdeps[nexttask]): | 2028 | if nexttask not in self.sqdata.unskippable and self.sqdata.sq_revdeps[nexttask] and self.sqdata.sq_revdeps[nexttask].issubset(self.scenequeue_covered) and self.check_dependencies(nexttask, self.sqdata.sq_revdeps[nexttask]): |
2029 | if nexttask not in self.rqdata.target_tids: | 2029 | if nexttask not in self.rqdata.target_tids: |
2030 | logger.debug2("Skipping setscene for task %s" % nexttask) | 2030 | logger.debug2("Skipping setscene for task %s" % nexttask) |
2031 | self.sq_task_skip(nexttask) | 2031 | self.sq_task_skip(nexttask) |
@@ -2189,7 +2189,7 @@ class RunQueueExecute: | |||
2189 | if self.can_start_task(): | 2189 | if self.can_start_task(): |
2190 | return True | 2190 | return True |
2191 | 2191 | ||
2192 | if self.stats.active > 0 or len(self.sq_live) > 0: | 2192 | if self.stats.active > 0 or self.sq_live: |
2193 | self.rq.read_workers() | 2193 | self.rq.read_workers() |
2194 | return self.rq.active_fds() | 2194 | return self.rq.active_fds() |
2195 | 2195 | ||
@@ -2201,7 +2201,7 @@ class RunQueueExecute: | |||
2201 | self.sq_task_failoutright(tid) | 2201 | self.sq_task_failoutright(tid) |
2202 | return True | 2202 | return True |
2203 | 2203 | ||
2204 | if len(self.failed_tids) != 0: | 2204 | if self.failed_tids: |
2205 | self.rq.state = runQueueFailed | 2205 | self.rq.state = runQueueFailed |
2206 | return True | 2206 | return True |
2207 | 2207 | ||
@@ -2280,7 +2280,7 @@ class RunQueueExecute: | |||
2280 | covered.intersection_update(self.tasks_scenequeue_done) | 2280 | covered.intersection_update(self.tasks_scenequeue_done) |
2281 | 2281 | ||
2282 | for tid in notcovered | covered: | 2282 | for tid in notcovered | covered: |
2283 | if len(self.rqdata.runtaskentries[tid].depends) == 0: | 2283 | if not self.rqdata.runtaskentries[tid].depends: |
2284 | self.setbuildable(tid) | 2284 | self.setbuildable(tid) |
2285 | elif self.rqdata.runtaskentries[tid].depends.issubset(self.runq_complete): | 2285 | elif self.rqdata.runtaskentries[tid].depends.issubset(self.runq_complete): |
2286 | self.setbuildable(tid) | 2286 | self.setbuildable(tid) |
@@ -2339,7 +2339,7 @@ class RunQueueExecute: | |||
2339 | # Now iterate those tasks in dependency order to regenerate their taskhash/unihash | 2339 | # Now iterate those tasks in dependency order to regenerate their taskhash/unihash |
2340 | next = set() | 2340 | next = set() |
2341 | for p in total: | 2341 | for p in total: |
2342 | if len(self.rqdata.runtaskentries[p].depends) == 0: | 2342 | if not self.rqdata.runtaskentries[p].depends: |
2343 | next.add(p) | 2343 | next.add(p) |
2344 | elif self.rqdata.runtaskentries[p].depends.isdisjoint(total): | 2344 | elif self.rqdata.runtaskentries[p].depends.isdisjoint(total): |
2345 | next.add(p) | 2345 | next.add(p) |
@@ -2349,7 +2349,7 @@ class RunQueueExecute: | |||
2349 | current = next.copy() | 2349 | current = next.copy() |
2350 | next = set() | 2350 | next = set() |
2351 | for tid in current: | 2351 | for tid in current: |
2352 | if len(self.rqdata.runtaskentries[p].depends) and not self.rqdata.runtaskentries[tid].depends.isdisjoint(total): | 2352 | if self.rqdata.runtaskentries[p].depends and not self.rqdata.runtaskentries[tid].depends.isdisjoint(total): |
2353 | continue | 2353 | continue |
2354 | orighash = self.rqdata.runtaskentries[tid].hash | 2354 | orighash = self.rqdata.runtaskentries[tid].hash |
2355 | dc = bb.parse.siggen.get_data_caches(self.rqdata.dataCaches, mc_from_tid(tid)) | 2355 | dc = bb.parse.siggen.get_data_caches(self.rqdata.dataCaches, mc_from_tid(tid)) |
@@ -2436,7 +2436,7 @@ class RunQueueExecute: | |||
2436 | if not harddepfail and self.sqdata.sq_revdeps[tid].issubset(self.scenequeue_covered | self.scenequeue_notcovered): | 2436 | if not harddepfail and self.sqdata.sq_revdeps[tid].issubset(self.scenequeue_covered | self.scenequeue_notcovered): |
2437 | if tid not in self.sq_buildable: | 2437 | if tid not in self.sq_buildable: |
2438 | self.sq_buildable.add(tid) | 2438 | self.sq_buildable.add(tid) |
2439 | if len(self.sqdata.sq_revdeps[tid]) == 0: | 2439 | if not self.sqdata.sq_revdeps[tid]: |
2440 | self.sq_buildable.add(tid) | 2440 | self.sq_buildable.add(tid) |
2441 | 2441 | ||
2442 | if tid in self.sqdata.outrightfail: | 2442 | if tid in self.sqdata.outrightfail: |
@@ -2652,7 +2652,7 @@ def build_scenequeue_data(sqdata, rqdata, rq, cooker, stampcache, sqrq): | |||
2652 | for tid in rqdata.runtaskentries: | 2652 | for tid in rqdata.runtaskentries: |
2653 | sq_revdeps[tid] = copy.copy(rqdata.runtaskentries[tid].revdeps) | 2653 | sq_revdeps[tid] = copy.copy(rqdata.runtaskentries[tid].revdeps) |
2654 | sq_revdeps_squash[tid] = set() | 2654 | sq_revdeps_squash[tid] = set() |
2655 | if (len(sq_revdeps[tid]) == 0) and tid not in rqdata.runq_setscene_tids: | 2655 | if not sq_revdeps[tid] and tid not in rqdata.runq_setscene_tids: |
2656 | #bb.warn("Added endpoint %s" % (tid)) | 2656 | #bb.warn("Added endpoint %s" % (tid)) |
2657 | endpoints[tid] = set() | 2657 | endpoints[tid] = set() |
2658 | 2658 | ||
@@ -2693,9 +2693,9 @@ def build_scenequeue_data(sqdata, rqdata, rq, cooker, stampcache, sqrq): | |||
2693 | sq_revdeps[dep].remove(point) | 2693 | sq_revdeps[dep].remove(point) |
2694 | if tasks: | 2694 | if tasks: |
2695 | sq_revdeps_squash[dep] |= tasks | 2695 | sq_revdeps_squash[dep] |= tasks |
2696 | if len(sq_revdeps[dep]) == 0 and dep not in rqdata.runq_setscene_tids: | 2696 | if not sq_revdeps[dep] and dep not in rqdata.runq_setscene_tids: |
2697 | newendpoints[dep] = task | 2697 | newendpoints[dep] = task |
2698 | if len(newendpoints) != 0: | 2698 | if newendpoints: |
2699 | process_endpoints(newendpoints) | 2699 | process_endpoints(newendpoints) |
2700 | 2700 | ||
2701 | process_endpoints(endpoints) | 2701 | process_endpoints(endpoints) |
@@ -2707,7 +2707,7 @@ def build_scenequeue_data(sqdata, rqdata, rq, cooker, stampcache, sqrq): | |||
2707 | # Take the build endpoints (no revdeps) and find the sstate tasks they depend upon | 2707 | # Take the build endpoints (no revdeps) and find the sstate tasks they depend upon |
2708 | new = True | 2708 | new = True |
2709 | for tid in rqdata.runtaskentries: | 2709 | for tid in rqdata.runtaskentries: |
2710 | if len(rqdata.runtaskentries[tid].revdeps) == 0: | 2710 | if not rqdata.runtaskentries[tid].revdeps: |
2711 | sqdata.unskippable.add(tid) | 2711 | sqdata.unskippable.add(tid) |
2712 | sqdata.unskippable |= sqrq.cantskip | 2712 | sqdata.unskippable |= sqrq.cantskip |
2713 | while new: | 2713 | while new: |
@@ -2716,7 +2716,7 @@ def build_scenequeue_data(sqdata, rqdata, rq, cooker, stampcache, sqrq): | |||
2716 | for tid in sorted(orig, reverse=True): | 2716 | for tid in sorted(orig, reverse=True): |
2717 | if tid in rqdata.runq_setscene_tids: | 2717 | if tid in rqdata.runq_setscene_tids: |
2718 | continue | 2718 | continue |
2719 | if len(rqdata.runtaskentries[tid].depends) == 0: | 2719 | if not rqdata.runtaskentries[tid].depends: |
2720 | # These are tasks which have no setscene tasks in their chain, need to mark as directly buildable | 2720 | # These are tasks which have no setscene tasks in their chain, need to mark as directly buildable |
2721 | sqrq.setbuildable(tid) | 2721 | sqrq.setbuildable(tid) |
2722 | sqdata.unskippable |= rqdata.runtaskentries[tid].depends | 2722 | sqdata.unskippable |= rqdata.runtaskentries[tid].depends |
@@ -2731,7 +2731,7 @@ def build_scenequeue_data(sqdata, rqdata, rq, cooker, stampcache, sqrq): | |||
2731 | for taskcounter, tid in enumerate(rqdata.runtaskentries): | 2731 | for taskcounter, tid in enumerate(rqdata.runtaskentries): |
2732 | if tid in rqdata.runq_setscene_tids: | 2732 | if tid in rqdata.runq_setscene_tids: |
2733 | pass | 2733 | pass |
2734 | elif len(sq_revdeps_squash[tid]) != 0: | 2734 | elif sq_revdeps_squash[tid]: |
2735 | bb.msg.fatal("RunQueue", "Something went badly wrong during scenequeue generation, aborting. Please report this problem.") | 2735 | bb.msg.fatal("RunQueue", "Something went badly wrong during scenequeue generation, aborting. Please report this problem.") |
2736 | else: | 2736 | else: |
2737 | del sq_revdeps_squash[tid] | 2737 | del sq_revdeps_squash[tid] |
@@ -2796,7 +2796,7 @@ def build_scenequeue_data(sqdata, rqdata, rq, cooker, stampcache, sqrq): | |||
2796 | sqdata.multiconfigs = set() | 2796 | sqdata.multiconfigs = set() |
2797 | for tid in sqdata.sq_revdeps: | 2797 | for tid in sqdata.sq_revdeps: |
2798 | sqdata.multiconfigs.add(mc_from_tid(tid)) | 2798 | sqdata.multiconfigs.add(mc_from_tid(tid)) |
2799 | if len(sqdata.sq_revdeps[tid]) == 0: | 2799 | if not sqdata.sq_revdeps[tid]: |
2800 | sqrq.sq_buildable.add(tid) | 2800 | sqrq.sq_buildable.add(tid) |
2801 | 2801 | ||
2802 | rqdata.init_progress_reporter.finish() | 2802 | rqdata.init_progress_reporter.finish() |
@@ -3050,7 +3050,7 @@ class runQueuePipe(): | |||
3050 | raise | 3050 | raise |
3051 | end = len(self.queue) | 3051 | end = len(self.queue) |
3052 | found = True | 3052 | found = True |
3053 | while found and len(self.queue): | 3053 | while found and self.queue: |
3054 | found = False | 3054 | found = False |
3055 | index = self.queue.find(b"</event>") | 3055 | index = self.queue.find(b"</event>") |
3056 | while index != -1 and self.queue.startswith(b"<event>"): | 3056 | while index != -1 and self.queue.startswith(b"<event>"): |
@@ -3088,7 +3088,7 @@ class runQueuePipe(): | |||
3088 | def close(self): | 3088 | def close(self): |
3089 | while self.read(): | 3089 | while self.read(): |
3090 | continue | 3090 | continue |
3091 | if len(self.queue) > 0: | 3091 | if self.queue: |
3092 | print("Warning, worker left partial message: %s" % self.queue) | 3092 | print("Warning, worker left partial message: %s" % self.queue) |
3093 | self.input.close() | 3093 | self.input.close() |
3094 | 3094 | ||