mirror of
https://git.yoctoproject.org/poky
synced 2026-01-29 21:08:42 +01:00
sstatesig: Optimise get_taskhash for hashequiv
With hashequiv the get_taskhash function is called much more regularly and contains expensive operations. This these don't change based upon hash in a given build, improve the caching within the function to reduce overhead. (From OE-Core rev: de98cfe3cde4b8d5f4b163b5fba3f129651ef06a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -142,6 +142,13 @@ class SignatureGeneratorOEBasicHashMixIn(object):
|
||||
|
||||
def get_taskhash(self, tid, deps, dataCache):
|
||||
h = super(bb.siggen.SignatureGeneratorBasicHash, self).get_taskhash(tid, deps, dataCache)
|
||||
if tid in self.lockedhashes:
|
||||
if self.lockedhashes[tid]:
|
||||
return self.lockedhashes[tid]
|
||||
else:
|
||||
return h
|
||||
|
||||
h = super(bb.siggen.SignatureGeneratorBasicHash, self).get_taskhash(tid, deps, dataCache)
|
||||
|
||||
(mc, _, task, fn) = bb.runqueue.split_tid_mcfn(tid)
|
||||
|
||||
@@ -178,17 +185,19 @@ class SignatureGeneratorOEBasicHashMixIn(object):
|
||||
% (recipename, task, h, h_locked, var))
|
||||
|
||||
return h_locked
|
||||
|
||||
self.lockedhashes[tid] = False
|
||||
#bb.warn("%s %s %s" % (recipename, task, h))
|
||||
return h
|
||||
|
||||
def get_unihash(self, tid):
|
||||
if tid in self.lockedhashes:
|
||||
if tid in self.lockedhashes and self.lockedhashes[tid]:
|
||||
return self.lockedhashes[tid]
|
||||
return super().get_unihash(tid)
|
||||
|
||||
def dump_sigtask(self, fn, task, stampbase, runtime):
|
||||
tid = fn + ":" + task
|
||||
if tid in self.lockedhashes:
|
||||
if tid in self.lockedhashes and self.lockedhashes[tid]:
|
||||
return
|
||||
super(bb.siggen.SignatureGeneratorBasicHash, self).dump_sigtask(fn, task, stampbase, runtime)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user