summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/runqueue.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/runqueue.py')
-rw-r--r--bitbake/lib/bb/runqueue.py66
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