mirror of
https://git.yoctoproject.org/poky
synced 2026-05-30 12:29:55 +00:00
Split out 'find next buildable task' into a separate generator function
It needs to be a generator, so scheduler subclasses have the option to skip buildable tasks and return a later one. (Bitbake rev: a8c61e41bc6277222e4cde667ad0b24bd1597aa0) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
This commit is contained in:
committed by
Richard Purdie
parent
0d1034d2ea
commit
ebe3850bee
@@ -92,17 +92,23 @@ class RunQueueScheduler(object):
|
|||||||
self.prio_map = []
|
self.prio_map = []
|
||||||
self.prio_map.extend(range(numTasks))
|
self.prio_map.extend(range(numTasks))
|
||||||
|
|
||||||
def next(self):
|
def next_buildable_tasks(self):
|
||||||
"""
|
"""
|
||||||
Return the id of the first task we find that is buildable
|
Return the id of the first task we find that is buildable
|
||||||
"""
|
"""
|
||||||
|
for tasknum in range(len(self.rqdata.runq_fnid)):
|
||||||
|
taskid = self.prio_map[tasknum]
|
||||||
|
if self.rq.runq_running[taskid] == 1:
|
||||||
|
continue
|
||||||
|
if self.rq.runq_buildable[taskid] == 1:
|
||||||
|
yield taskid
|
||||||
|
|
||||||
|
def next(self):
|
||||||
|
"""
|
||||||
|
Return the id of the task we should build next
|
||||||
|
"""
|
||||||
if self.rq.stats.active < self.rq.number_tasks:
|
if self.rq.stats.active < self.rq.number_tasks:
|
||||||
for task1 in range(len(self.rqdata.runq_fnid)):
|
return next(self.next_buildable_tasks(), None)
|
||||||
task = self.prio_map[task1]
|
|
||||||
if self.rq.runq_running[task] == 1:
|
|
||||||
continue
|
|
||||||
if self.rq.runq_buildable[task] == 1:
|
|
||||||
return task
|
|
||||||
|
|
||||||
class RunQueueSchedulerSpeed(RunQueueScheduler):
|
class RunQueueSchedulerSpeed(RunQueueScheduler):
|
||||||
"""
|
"""
|
||||||
|
|||||||
Reference in New Issue
Block a user