From 2747b2003e982094180a9c18ecb22a6559bca64e Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 23 Nov 2011 12:38:44 +0000 Subject: 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 --- bitbake/lib/bb/runqueue.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'bitbake') 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): logger.debug(1, 'Full skip list %s', self.rq.scenequeue_covered) - for task in self.rq.scenequeue_covered: - self.task_skip(task) - event.fire(bb.event.StampUpdate(self.rqdata.target_pairs, self.rqdata.dataCache.stamp), self.cfgData) schedulers = self.get_schedulers() @@ -1328,8 +1325,14 @@ class RunQueueExecuteTasks(RunQueueExecute): task = self.sched.next() if task is not None: fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[task]] - taskname = self.rqdata.runq_task[task] + + if task in self.rq.scenequeue_covered: + logger.debug(2, "Setscene covered task %s (%s)", task, + self.rqdata.get_user_idstring(task)) + self.task_skip(task) + return True + if self.rq.check_stamp_task(task, taskname): logger.debug(2, "Stamp current task %s (%s)", task, self.rqdata.get_user_idstring(task)) -- cgit v1.2.3-54-g00ecf