mirror of
https://git.yoctoproject.org/poky
synced 2026-01-29 21:08:42 +01:00
bitbake: bb: Use namedtuple for Task data
Task dependency data is becoming unwieldy with the number of indices it contains. Convert it to use a named tuple instead, which allows members to be indexed by a named property or an index (which allows it to retain backward compatibility). (Bitbake rev: bc7c44affe8e3fa94e92c3bcb8ad85bf11963779) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Steve Sakoman <steve@sakoman.com>
This commit is contained in:
committed by
Steve Sakoman
parent
bcb569e698
commit
d1811356b7
@@ -36,6 +36,7 @@ class BBHandledException(Exception):
|
||||
|
||||
import os
|
||||
import logging
|
||||
from collections import namedtuple
|
||||
|
||||
|
||||
class NullHandler(logging.Handler):
|
||||
@@ -227,3 +228,14 @@ def deprecate_import(current, modulename, fromlist, renames = None):
|
||||
|
||||
setattr(sys.modules[current], newname, newobj)
|
||||
|
||||
TaskData = namedtuple("TaskData", [
|
||||
"pn",
|
||||
"taskname",
|
||||
"fn",
|
||||
"deps",
|
||||
"provides",
|
||||
"taskhash",
|
||||
"unihash",
|
||||
"hashfn",
|
||||
"taskhash_deps",
|
||||
])
|
||||
|
||||
@@ -2452,15 +2452,17 @@ class RunQueueExecute:
|
||||
taskdepdata_cache = {}
|
||||
for task in self.rqdata.runtaskentries:
|
||||
(mc, fn, taskname, taskfn) = split_tid_mcfn(task)
|
||||
pn = self.rqdata.dataCaches[mc].pkg_fn[taskfn]
|
||||
deps = self.rqdata.runtaskentries[task].depends
|
||||
provides = self.rqdata.dataCaches[mc].fn_provides[taskfn]
|
||||
taskhash = self.rqdata.runtaskentries[task].hash
|
||||
unihash = self.rqdata.runtaskentries[task].unihash
|
||||
deps = self.filtermcdeps(task, mc, deps)
|
||||
hashfn = self.rqdata.dataCaches[mc].hashfn[taskfn]
|
||||
taskhash_deps = self.rqdata.runtaskentries[task].taskhash_deps
|
||||
taskdepdata_cache[task] = [pn, taskname, fn, deps, provides, taskhash, unihash, hashfn, taskhash_deps]
|
||||
taskdepdata_cache[task] = bb.TaskData(
|
||||
pn = self.rqdata.dataCaches[mc].pkg_fn[taskfn],
|
||||
taskname = taskname,
|
||||
fn = fn,
|
||||
deps = self.filtermcdeps(task, mc, self.rqdata.runtaskentries[task].depends),
|
||||
provides = self.rqdata.dataCaches[mc].fn_provides[taskfn],
|
||||
taskhash = self.rqdata.runtaskentries[task].hash,
|
||||
unihash = self.rqdata.runtaskentries[task].unihash,
|
||||
hashfn = self.rqdata.dataCaches[mc].hashfn[taskfn],
|
||||
taskhash_deps = self.rqdata.runtaskentries[task].taskhash_deps,
|
||||
)
|
||||
|
||||
self.taskdepdata_cache = taskdepdata_cache
|
||||
|
||||
@@ -2475,9 +2477,11 @@ class RunQueueExecute:
|
||||
while next:
|
||||
additional = []
|
||||
for revdep in next:
|
||||
self.taskdepdata_cache[revdep][6] = self.rqdata.runtaskentries[revdep].unihash
|
||||
self.taskdepdata_cache[revdep] = self.taskdepdata_cache[revdep]._replace(
|
||||
unihash=self.rqdata.runtaskentries[revdep].unihash
|
||||
)
|
||||
taskdepdata[revdep] = self.taskdepdata_cache[revdep]
|
||||
for revdep2 in self.taskdepdata_cache[revdep][3]:
|
||||
for revdep2 in self.taskdepdata_cache[revdep].deps:
|
||||
if revdep2 not in taskdepdata:
|
||||
additional.append(revdep2)
|
||||
next = additional
|
||||
@@ -2841,14 +2845,19 @@ class RunQueueExecute:
|
||||
additional = []
|
||||
for revdep in next:
|
||||
(mc, fn, taskname, taskfn) = split_tid_mcfn(revdep)
|
||||
pn = self.rqdata.dataCaches[mc].pkg_fn[taskfn]
|
||||
deps = getsetscenedeps(revdep)
|
||||
provides = self.rqdata.dataCaches[mc].fn_provides[taskfn]
|
||||
taskhash = self.rqdata.runtaskentries[revdep].hash
|
||||
unihash = self.rqdata.runtaskentries[revdep].unihash
|
||||
hashfn = self.rqdata.dataCaches[mc].hashfn[taskfn]
|
||||
taskhash_deps = self.rqdata.runtaskentries[revdep].taskhash_deps
|
||||
taskdepdata[revdep] = [pn, taskname, fn, deps, provides, taskhash, unihash, hashfn, taskhash_deps]
|
||||
|
||||
taskdepdata[revdep] = bb.TaskData(
|
||||
pn = self.rqdata.dataCaches[mc].pkg_fn[taskfn],
|
||||
taskname = taskname,
|
||||
fn = fn,
|
||||
deps = deps,
|
||||
provides = self.rqdata.dataCaches[mc].fn_provides[taskfn],
|
||||
taskhash = self.rqdata.runtaskentries[revdep].hash,
|
||||
unihash = self.rqdata.runtaskentries[revdep].unihash,
|
||||
hashfn = self.rqdata.dataCaches[mc].hashfn[taskfn],
|
||||
taskhash_deps = self.rqdata.runtaskentries[revdep].taskhash_deps,
|
||||
)
|
||||
for revdep2 in deps:
|
||||
if revdep2 not in taskdepdata:
|
||||
additional.append(revdep2)
|
||||
|
||||
Reference in New Issue
Block a user