* [PATCH] classutils.py: deterministic sorting
@ 2017-04-10 20:59 Juro Bystricky
0 siblings, 0 replies; only message in thread
From: Juro Bystricky @ 2017-04-10 20:59 UTC (permalink / raw)
To: openembedded-core
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]
Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
---
meta/lib/oe/classutils.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/lib/oe/classutils.py b/meta/lib/oe/classutils.py
index e7856c8..45cd524 100644
--- a/meta/lib/oe/classutils.py
+++ b/meta/lib/oe/classutils.py
@@ -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():
--
2.7.4
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2017-04-10 20:59 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-10 20:59 [PATCH] classutils.py: deterministic sorting Juro Bystricky
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.