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.py23
1 files changed, 18 insertions, 5 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index 91b1f07351..11bd936cb2 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -1624,7 +1624,7 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
1624 sq_revdeps = [] 1624 sq_revdeps = []
1625 sq_revdeps_new = [] 1625 sq_revdeps_new = []
1626 sq_revdeps_squash = [] 1626 sq_revdeps_squash = []
1627 self.sq_harddeps = [] 1627 self.sq_harddeps = {}
1628 1628
1629 # We need to construct a dependency graph for the setscene functions. Intermediate 1629 # We need to construct a dependency graph for the setscene functions. Intermediate
1630 # dependencies between the setscene tasks only complicate the code. This code 1630 # dependencies between the setscene tasks only complicate the code. This code
@@ -1735,15 +1735,19 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
1735 dep = self.rqdata.taskData.fn_index[depdata] 1735 dep = self.rqdata.taskData.fn_index[depdata]
1736 taskid = self.rqdata.get_task_id(self.rqdata.taskData.getfn_id(dep), idependtask.replace("_setscene", "")) 1736 taskid = self.rqdata.get_task_id(self.rqdata.taskData.getfn_id(dep), idependtask.replace("_setscene", ""))
1737 if taskid is None: 1737 if taskid is None:
1738 bb.msg.fatal("RunQueue", "Task %s:%s depends upon non-existent task %s:%s" % (self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[realid]], self.rqdata.taskData.tasks_name[realid], dep, idependtask)) 1738 bb.msg.fatal("RunQueue", "Task %s_setscene depends upon non-existent task %s:%s" % (self.self.rqdata.get_user_idstring(task), dep, idependtask))
1739
1740 if not self.rqdata.runq_setscene.index(taskid) in self.sq_harddeps:
1741 self.sq_harddeps[self.rqdata.runq_setscene.index(taskid)] = set()
1742 self.sq_harddeps[self.rqdata.runq_setscene.index(taskid)].add(self.rqdata.runq_setscene.index(task))
1739 1743
1740 self.sq_harddeps.append(self.rqdata.runq_setscene.index(taskid))
1741 sq_revdeps_squash[self.rqdata.runq_setscene.index(task)].add(self.rqdata.runq_setscene.index(taskid)) 1744 sq_revdeps_squash[self.rqdata.runq_setscene.index(task)].add(self.rqdata.runq_setscene.index(taskid))
1742 # Have to zero this to avoid circular dependencies 1745 # Have to zero this to avoid circular dependencies
1743 sq_revdeps_squash[self.rqdata.runq_setscene.index(taskid)] = set() 1746 sq_revdeps_squash[self.rqdata.runq_setscene.index(taskid)] = set()
1744 1747
1745 #for task in xrange(len(sq_revdeps_squash)): 1748 #for task in xrange(len(sq_revdeps_squash)):
1746 # print "Task %s: %s.%s is %s " % (task, self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[self.rqdata.runq_setscene[task]]], self.rqdata.runq_task[self.rqdata.runq_setscene[task]] + "_setscene", sq_revdeps_squash[task]) 1749 # realtask = self.rqdata.runq_setscene[task]
1750 # bb.warn("Task %s: %s_setscene is %s " % (task, self.rqdata.get_user_idstring(realtask) , sq_revdeps_squash[task]))
1747 1751
1748 self.sq_deps = [] 1752 self.sq_deps = []
1749 self.sq_revdeps = sq_revdeps_squash 1753 self.sq_revdeps = sq_revdeps_squash
@@ -1817,7 +1821,10 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
1817 1821
1818 def scenequeue_updatecounters(self, task, fail = False): 1822 def scenequeue_updatecounters(self, task, fail = False):
1819 for dep in self.sq_deps[task]: 1823 for dep in self.sq_deps[task]:
1820 if fail and task in self.sq_harddeps: 1824 if fail and task in self.sq_harddeps and dep in self.sq_harddeps[task]:
1825 realtask = self.rqdata.runq_setscene[task]
1826 realdep = self.rqdata.runq_setscene[dep]
1827 logger.debug(2, "%s was unavailable and is a hard dependency of %s so skipping" % (self.rqdata.get_user_idstring(realtask), self.rqdata.get_user_idstring(realdep)))
1821 continue 1828 continue
1822 self.sq_revdeps2[dep].remove(task) 1829 self.sq_revdeps2[dep].remove(task)
1823 if len(self.sq_revdeps2[dep]) == 0: 1830 if len(self.sq_revdeps2[dep]) == 0:
@@ -1930,6 +1937,12 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
1930 self.rq.read_workers() 1937 self.rq.read_workers()
1931 return self.rq.active_fds() 1938 return self.rq.active_fds()
1932 1939
1940 #for task in xrange(self.stats.total):
1941 # if self.runq_running[task] != 1:
1942 # buildable = self.runq_buildable[task]
1943 # revdeps = self.sq_revdeps[task]
1944 # bb.warn("Found we didn't run %s %s %s %s" % (task, buildable, str(revdeps), self.rqdata.get_user_idstring(self.rqdata.runq_setscene[task])))
1945
1933 # Convert scenequeue_covered task numbers into full taskgraph ids 1946 # Convert scenequeue_covered task numbers into full taskgraph ids
1934 oldcovered = self.scenequeue_covered 1947 oldcovered = self.scenequeue_covered
1935 self.rq.scenequeue_covered = set() 1948 self.rq.scenequeue_covered = set()