mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 12:59:02 +02:00
classutils.py: deterministic sorting
The method "prioritized" returns a list sorted by the value of the "priority" field, in descending order. However, if several list items have the same priority, the ordering of those items within the priority-sorted list becomes random. As a consequence, we may end up with a non-deterministic oe-terminal spawning, as several terminals have the same priority. So running commands such as $ bitbake xxx -cdevshell $ bitbake yyy -cmenuconfig may spawn a different terminal each time, for example sometimes Gnome and sometimes Konsole as hey have the same priority. Rather than modifying the priorities so they all differ, we sub-sort the list based on (terminal) names. This way we achieve a deterministic outcome. [YOCTO#10938] (From OE-Core rev: 82ae62f28dd2d5fb2fb261478ac6161315ac6c38) Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
a4cca6a131
commit
34db499e6b
|
@ -36,7 +36,7 @@ abstract base classes out of the registry)."""
|
|||
@classmethod
|
||||
def prioritized(tcls):
|
||||
return sorted(list(tcls.registry.values()),
|
||||
key=lambda v: v.priority, reverse=True)
|
||||
key=lambda v: (v.priority, v.name), reverse=True)
|
||||
|
||||
def unregister(cls):
|
||||
for key in cls.registry.keys():
|
||||
|
|
Loading…
Reference in New Issue
Block a user