mirror of
https://git.yoctoproject.org/poky
synced 2026-05-09 17:39:31 +00:00
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>
This commit is contained in:
@@ -1236,9 +1236,6 @@ class RunQueueExecuteTasks(RunQueueExecute):
|
|||||||
|
|
||||||
logger.debug(1, 'Full skip list %s', self.rq.scenequeue_covered)
|
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)
|
event.fire(bb.event.StampUpdate(self.rqdata.target_pairs, self.rqdata.dataCache.stamp), self.cfgData)
|
||||||
|
|
||||||
schedulers = self.get_schedulers()
|
schedulers = self.get_schedulers()
|
||||||
@@ -1332,8 +1329,14 @@ class RunQueueExecuteTasks(RunQueueExecute):
|
|||||||
task = self.sched.next()
|
task = self.sched.next()
|
||||||
if task is not None:
|
if task is not None:
|
||||||
fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[task]]
|
fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[task]]
|
||||||
|
|
||||||
taskname = self.rqdata.runq_task[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):
|
if self.rq.check_stamp_task(task, taskname):
|
||||||
logger.debug(2, "Stamp current task %s (%s)", task,
|
logger.debug(2, "Stamp current task %s (%s)", task,
|
||||||
self.rqdata.get_user_idstring(task))
|
self.rqdata.get_user_idstring(task))
|
||||||
|
|||||||
Reference in New Issue
Block a user