summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2011-11-23 12:38:44 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-11-23 12:45:30 +0000
commit54217ee467f239f244a8697c5e12c0fa8212f4c2 (patch)
treeceecbe58169b2b051a21c1f7cd566d57c284c223
parent89a5b473767caf38dfaae4437e0543dd068276c3 (diff)
downloadpoky-54217ee467f239f244a8697c5e12c0fa8212f4c2.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>
-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 1ed729d578..2141cf7d84 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -1236,9 +1236,6 @@ class RunQueueExecuteTasks(RunQueueExecute):
1236 1236
1237 logger.debug(1, 'Full skip list %s', self.rq.scenequeue_covered) 1237 logger.debug(1, 'Full skip list %s', self.rq.scenequeue_covered)
1238 1238
1239 for task in self.rq.scenequeue_covered:
1240 self.task_skip(task)
1241
1242 event.fire(bb.event.StampUpdate(self.rqdata.target_pairs, self.rqdata.dataCache.stamp), self.cfgData) 1239 event.fire(bb.event.StampUpdate(self.rqdata.target_pairs, self.rqdata.dataCache.stamp), self.cfgData)
1243 1240
1244 schedulers = self.get_schedulers() 1241 schedulers = self.get_schedulers()
@@ -1332,8 +1329,14 @@ class RunQueueExecuteTasks(RunQueueExecute):
1332 task = self.sched.next() 1329 task = self.sched.next()
1333 if task is not None: 1330 if task is not None:
1334 fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[task]] 1331 fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[task]]
1335
1336 taskname = self.rqdata.runq_task[task] 1332 taskname = self.rqdata.runq_task[task]
1333
1334 if task in self.rq.scenequeue_covered:
1335 logger.debug(2, "Setscene covered task %s (%s)", task,
1336 self.rqdata.get_user_idstring(task))
1337 self.task_skip(task)
1338 return True
1339
1337 if self.rq.check_stamp_task(task, taskname): 1340 if self.rq.check_stamp_task(task, taskname):
1338 logger.debug(2, "Stamp current task %s (%s)", task, 1341 logger.debug(2, "Stamp current task %s (%s)", task,
1339 self.rqdata.get_user_idstring(task)) 1342 self.rqdata.get_user_idstring(task))