[oe-commits] [openembedded-core] 01/20: classutils.py: deterministic sorting

git at git.openembedded.org git at git.openembedded.org
Mon Apr 10 23:58:39 UTC 2017


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master-next
in repository openembedded-core.

commit 82ae62f28dd2d5fb2fb261478ac6161315ac6c38
Author: Juro Bystricky <juro.bystricky at intel.com>
AuthorDate: Mon Apr 10 13:59:36 2017 -0700

    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]
    
    Signed-off-by: Juro Bystricky <juro.bystricky at intel.com>
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 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():

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list