mirror of
https://git.yoctoproject.org/poky
synced 2026-04-27 03:32:12 +02:00
bitbake: runqueue: Batch scenequeue updates
Batch all updates to scenequeue data together in a single invocation instead of checking each task serially. This allows the checks for sstate object to happen in parallel, and also makes sure the log statement only happens once (per set of rehashes). (Bitbake rev: db033a8f8a276d864bdb2e1eef159ab5794a0658) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
c59afbae72
commit
b3771bded2
@@ -2320,6 +2320,7 @@ class RunQueueExecute:
|
||||
if tid not in self.pending_migrations:
|
||||
self.pending_migrations.add(tid)
|
||||
|
||||
update_tasks = []
|
||||
for tid in self.pending_migrations.copy():
|
||||
if tid in self.runq_running or tid in self.sq_live:
|
||||
# Too late, task already running, not much we can do now
|
||||
@@ -2379,11 +2380,13 @@ class RunQueueExecute:
|
||||
if tid in self.build_stamps:
|
||||
del self.build_stamps[tid]
|
||||
|
||||
origvalid = False
|
||||
if tid in self.sqdata.valid:
|
||||
origvalid = True
|
||||
update_tasks.append((tid, harddepfail, tid in self.sqdata.valid))
|
||||
|
||||
if update_tasks:
|
||||
self.sqdone = False
|
||||
update_scenequeue_data([tid], self.sqdata, self.rqdata, self.rq, self.cooker, self.stampcache, self, summary=False)
|
||||
update_scenequeue_data([t[0] for t in update_tasks], self.sqdata, self.rqdata, self.rq, self.cooker, self.stampcache, self, summary=False)
|
||||
|
||||
for (tid, harddepfail, origvalid) in update_tasks:
|
||||
if tid in self.sqdata.valid and not origvalid:
|
||||
logger.info("Setscene task %s became valid" % tid)
|
||||
if harddepfail:
|
||||
|
||||
Reference in New Issue
Block a user