mirror of
https://git.yoctoproject.org/poky
synced 2026-09-20 03:49:32 +02:00
bitbake: runqueue.py: Convert depends variable to use sets
This gives some small performance gains and sets the scene for other improvements by removing the need for duplicate detection code. (Bitbake rev: 6fd723479e8d49227fd58040b3485c1d5afc4bc5) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -409,7 +409,7 @@ class RunQueueData:
|
|||||||
for taskname in tasknames:
|
for taskname in tasknames:
|
||||||
taskid = taskData.gettask_id_fromfnid(depdata, taskname)
|
taskid = taskData.gettask_id_fromfnid(depdata, taskname)
|
||||||
if taskid is not None:
|
if taskid is not None:
|
||||||
depends.append(taskid)
|
depends.add(taskid)
|
||||||
|
|
||||||
def add_runtime_dependencies(depids, tasknames, depends):
|
def add_runtime_dependencies(depids, tasknames, depends):
|
||||||
for depid in depids:
|
for depid in depids:
|
||||||
@@ -421,10 +421,10 @@ class RunQueueData:
|
|||||||
for taskname in tasknames:
|
for taskname in tasknames:
|
||||||
taskid = taskData.gettask_id_fromfnid(depdata, taskname)
|
taskid = taskData.gettask_id_fromfnid(depdata, taskname)
|
||||||
if taskid is not None:
|
if taskid is not None:
|
||||||
depends.append(taskid)
|
depends.add(taskid)
|
||||||
|
|
||||||
for task in xrange(len(taskData.tasks_name)):
|
for task in xrange(len(taskData.tasks_name)):
|
||||||
depends = []
|
depends = set()
|
||||||
recrdepends = []
|
recrdepends = []
|
||||||
fnid = taskData.tasks_fnid[task]
|
fnid = taskData.tasks_fnid[task]
|
||||||
fn = taskData.fn_index[fnid]
|
fn = taskData.fn_index[fnid]
|
||||||
@@ -437,7 +437,7 @@ class RunQueueData:
|
|||||||
# Resolve task internal dependencies
|
# Resolve task internal dependencies
|
||||||
#
|
#
|
||||||
# e.g. addtask before X after Y
|
# e.g. addtask before X after Y
|
||||||
depends = taskData.tasks_tdepends[task]
|
depends = set(taskData.tasks_tdepends[task])
|
||||||
|
|
||||||
# Resolve 'deptask' dependencies
|
# Resolve 'deptask' dependencies
|
||||||
#
|
#
|
||||||
@@ -470,7 +470,7 @@ class RunQueueData:
|
|||||||
taskid = taskData.gettask_id_fromfnid(depdata, idependtask)
|
taskid = taskData.gettask_id_fromfnid(depdata, idependtask)
|
||||||
if taskid is None:
|
if taskid is None:
|
||||||
bb.msg.fatal("RunQueue", "Task %s in %s depends upon non-existent task %s in %s" % (taskData.tasks_name[task], fn, idependtask, dep))
|
bb.msg.fatal("RunQueue", "Task %s in %s depends upon non-existent task %s in %s" % (taskData.tasks_name[task], fn, idependtask, dep))
|
||||||
depends.append(taskid)
|
depends.add(taskid)
|
||||||
if depdata != fnid:
|
if depdata != fnid:
|
||||||
tdepends_fnid[fnid].add(taskid)
|
tdepends_fnid[fnid].add(taskid)
|
||||||
irdepends = taskData.tasks_irdepends[task]
|
irdepends = taskData.tasks_irdepends[task]
|
||||||
@@ -482,7 +482,7 @@ class RunQueueData:
|
|||||||
taskid = taskData.gettask_id_fromfnid(depdata, idependtask)
|
taskid = taskData.gettask_id_fromfnid(depdata, idependtask)
|
||||||
if taskid is None:
|
if taskid is None:
|
||||||
bb.msg.fatal("RunQueue", "Task %s in %s rdepends upon non-existent task %s in %s" % (taskData.tasks_name[task], fn, idependtask, dep))
|
bb.msg.fatal("RunQueue", "Task %s in %s rdepends upon non-existent task %s in %s" % (taskData.tasks_name[task], fn, idependtask, dep))
|
||||||
depends.append(taskid)
|
depends.add(taskid)
|
||||||
if depdata != fnid:
|
if depdata != fnid:
|
||||||
tdepends_fnid[fnid].add(taskid)
|
tdepends_fnid[fnid].add(taskid)
|
||||||
|
|
||||||
@@ -499,16 +499,12 @@ class RunQueueData:
|
|||||||
|
|
||||||
# Rmove all self references
|
# Rmove all self references
|
||||||
if task in depends:
|
if task in depends:
|
||||||
newdep = []
|
|
||||||
logger.debug(2, "Task %s (%s %s) contains self reference! %s", task, taskData.fn_index[taskData.tasks_fnid[task]], taskData.tasks_name[task], depends)
|
logger.debug(2, "Task %s (%s %s) contains self reference! %s", task, taskData.fn_index[taskData.tasks_fnid[task]], taskData.tasks_name[task], depends)
|
||||||
for dep in depends:
|
depends.remove(task)
|
||||||
if task != dep:
|
|
||||||
newdep.append(dep)
|
|
||||||
depends = newdep
|
|
||||||
|
|
||||||
self.runq_fnid.append(taskData.tasks_fnid[task])
|
self.runq_fnid.append(taskData.tasks_fnid[task])
|
||||||
self.runq_task.append(taskData.tasks_name[task])
|
self.runq_task.append(taskData.tasks_name[task])
|
||||||
self.runq_depends.append(set(depends))
|
self.runq_depends.append(depends)
|
||||||
self.runq_revdeps.append(set())
|
self.runq_revdeps.append(set())
|
||||||
self.runq_hash.append("")
|
self.runq_hash.append("")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user