mirror of
https://git.yoctoproject.org/poky
synced 2026-05-08 05:09:24 +00:00
bitbake: runqueue: Track task unique hash
Requests the task unique hash from siggen and tracks it [YOCTO #13030] (Bitbake rev: 1ecc47f0831b35c8c92b37a81cef4e43ff9f67b2) 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
960fb3ed02
commit
57e3c55f6d
@@ -346,6 +346,7 @@ class RunTaskEntry(object):
|
||||
self.depends = set()
|
||||
self.revdeps = set()
|
||||
self.hash = None
|
||||
self.unihash = None
|
||||
self.task = None
|
||||
self.weight = 1
|
||||
|
||||
@@ -385,6 +386,9 @@ class RunQueueData:
|
||||
def get_task_hash(self, tid):
|
||||
return self.runtaskentries[tid].hash
|
||||
|
||||
def get_task_unihash(self, tid):
|
||||
return self.runtaskentries[tid].unihash
|
||||
|
||||
def get_user_idstring(self, tid, task_name_suffix = ""):
|
||||
return tid + task_name_suffix
|
||||
|
||||
@@ -1150,18 +1154,21 @@ class RunQueueData:
|
||||
if len(self.runtaskentries[tid].depends - dealtwith) == 0:
|
||||
dealtwith.add(tid)
|
||||
todeal.remove(tid)
|
||||
procdep = []
|
||||
for dep in self.runtaskentries[tid].depends:
|
||||
procdep.append(fn_from_tid(dep) + "." + taskname_from_tid(dep))
|
||||
(mc, fn, taskname, taskfn) = split_tid_mcfn(tid)
|
||||
self.runtaskentries[tid].hash = bb.parse.siggen.get_taskhash(taskfn, taskname, procdep, self.dataCaches[mc])
|
||||
task = self.runtaskentries[tid].task
|
||||
self.prepare_task_hash(tid)
|
||||
|
||||
bb.parse.siggen.writeout_file_checksum_cache()
|
||||
|
||||
#self.dump_data()
|
||||
return len(self.runtaskentries)
|
||||
|
||||
def prepare_task_hash(self, tid):
|
||||
procdep = []
|
||||
for dep in self.runtaskentries[tid].depends:
|
||||
procdep.append(fn_from_tid(dep) + "." + taskname_from_tid(dep))
|
||||
(mc, fn, taskname, taskfn) = split_tid_mcfn(tid)
|
||||
self.runtaskentries[tid].hash = bb.parse.siggen.get_taskhash(taskfn, taskname, procdep, self.dataCaches[mc])
|
||||
self.runtaskentries[tid].unihash = bb.parse.siggen.get_unihash(fn + "." + taskname)
|
||||
|
||||
def dump_data(self):
|
||||
"""
|
||||
Dump some debug information on the internal data structures
|
||||
@@ -2081,7 +2088,8 @@ class RunQueueExecuteTasks(RunQueueExecute):
|
||||
deps = self.rqdata.runtaskentries[revdep].depends
|
||||
provides = self.rqdata.dataCaches[mc].fn_provides[taskfn]
|
||||
taskhash = self.rqdata.runtaskentries[revdep].hash
|
||||
taskdepdata[revdep] = [pn, taskname, fn, deps, provides, taskhash]
|
||||
unihash = self.rqdata.runtaskentries[revdep].unihash
|
||||
taskdepdata[revdep] = [pn, taskname, fn, deps, provides, taskhash, unihash]
|
||||
for revdep2 in deps:
|
||||
if revdep2 not in taskdepdata:
|
||||
additional.append(revdep2)
|
||||
@@ -2524,7 +2532,8 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
|
||||
deps = getsetscenedeps(revdep)
|
||||
provides = self.rqdata.dataCaches[mc].fn_provides[taskfn]
|
||||
taskhash = self.rqdata.runtaskentries[revdep].hash
|
||||
taskdepdata[revdep] = [pn, taskname, fn, deps, provides, taskhash]
|
||||
unihash = self.rqdata.runtaskentries[revdep].unihash
|
||||
taskdepdata[revdep] = [pn, taskname, fn, deps, provides, taskhash, unihash]
|
||||
for revdep2 in deps:
|
||||
if revdep2 not in taskdepdata:
|
||||
additional.append(revdep2)
|
||||
|
||||
Reference in New Issue
Block a user