]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
uihelper: Keep track of pids in execution order
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 29 Mar 2012 18:38:47 +0000 (19:38 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 29 Mar 2012 18:38:47 +0000 (19:38 +0100)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
lib/bb/ui/uihelper.py

index c96f381c54cfbc351b99b6f4fcd90e15fb92d2fd..2c786953774dbc06b892fa253f17a84d7c7e8980 100644 (file)
@@ -23,6 +23,8 @@ class BBUIHelper:
     def __init__(self):
         self.needUpdate = False
         self.running_tasks = {}
+        # Running PIDs preserves the order tasks were executed in
+        self.running_pids = []
         self.failed_tasks = []
         self.tasknumber_current = 0
         self.tasknumber_total = 0
@@ -30,16 +32,20 @@ class BBUIHelper:
     def eventHandler(self, event):
         if isinstance(event, bb.build.TaskStarted):
             self.running_tasks[event.pid] = { 'title' : "%s %s" % (event._package, event._task) }
+            self.running_pids.append(event.pid)
             self.needUpdate = True
         if isinstance(event, bb.build.TaskSucceeded):
             del self.running_tasks[event.pid]
+            self.running_pids.remove(event.pid)
             self.needUpdate = True
         if isinstance(event, bb.build.TaskFailedSilent):
             del self.running_tasks[event.pid]
+            self.running_pids.remove(event.pid)
             # Don't add to the failed tasks list since this is e.g. a setscene task failure
             self.needUpdate = True
         if isinstance(event, bb.build.TaskFailed):
             del self.running_tasks[event.pid]
+            self.running_pids.remove(event.pid)
             self.failed_tasks.append( { 'title' : "%s %s" % (event._package, event._task)})
             self.needUpdate = True
         if isinstance(event, bb.runqueue.runQueueTaskStarted):