summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2011-11-23 12:38:44 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-01-30 16:16:12 +0000
commit2747b2003e982094180a9c18ecb22a6559bca64e (patch)
tree0337fa9a3da2ab71223faadbb899eb854c78a6aa /bitbake
parent375297ea28e991a735144f9c900bb610dbb6efc4 (diff)
downloadpoky-2747b2003e982094180a9c18ecb22a6559bca64e.tar.gz
runqueue.py: Ensure setscene tasks don't break dependency order
If A depends upon B which depends upon C and the setscene for B succeeds but C is going to get rebuilt, we should wait for C to try and build A but currently we don't. This is due to the timing of when we run the task_skip() as this triggers other tasks to become buildable. This patch moves the timing of that call to a more appropriate place allowing dependencies to behave as expected. (Bitbake rev: b7114d8e5d9b0720339bd5d24d243c0f2a7c1f3b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/runqueue.py11
1 files changed, 7 insertions, 4 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index 5c949d2533..3f8ea3156d 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -1232,9 +1232,6 @@ class RunQueueExecuteTasks(RunQueueExecute):
1232 1232
1233 logger.debug(1, 'Full skip list %s', self.rq.scenequeue_covered) 1233 logger.debug(1, 'Full skip list %s', self.rq.scenequeue_covered)
1234 1234
1235 for task in self.rq.scenequeue_covered:
1236 self.task_skip(task)
1237
1238 event.fire(bb.event.StampUpdate(self.rqdata.target_pairs, self.rqdata.dataCache.stamp), self.cfgData) 1235 event.fire(bb.event.StampUpdate(self.rqdata.target_pairs, self.rqdata.dataCache.stamp), self.cfgData)
1239 1236
1240 schedulers = self.get_schedulers() 1237 schedulers = self.get_schedulers()
@@ -1328,8 +1325,14 @@ class RunQueueExecuteTasks(RunQueueExecute):
1328 task = self.sched.next() 1325 task = self.sched.next()
1329 if task is not None: 1326 if task is not None:
1330 fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[task]] 1327 fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[task]]
1331
1332 taskname = self.rqdata.runq_task[task] 1328 taskname = self.rqdata.runq_task[task]
1329
1330 if task in self.rq.scenequeue_covered:
1331 logger.debug(2, "Setscene covered task %s (%s)", task,
1332 self.rqdata.get_user_idstring(task))
1333 self.task_skip(task)
1334 return True
1335
1333 if self.rq.check_stamp_task(task, taskname): 1336 if self.rq.check_stamp_task(task, taskname):
1334 logger.debug(2, "Stamp current task %s (%s)", task, 1337 logger.debug(2, "Stamp current task %s (%s)", task,
1335 self.rqdata.get_user_idstring(task)) 1338 self.rqdata.get_user_idstring(task))