]> code.ossystems Code Review - openembedded-core.git/commitdiff
runqueue: pass a copy of the RunQueueStats to events
authorChris Larson <chris_larson@mentor.com>
Wed, 16 Feb 2011 22:18:06 +0000 (15:18 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 21 Feb 2011 13:48:39 +0000 (13:48 +0000)
This avoids cases where the stats are modified after the event is fired but
before it's dispatched to the UI.

(Bitbake rev: 1954f182687a0bd429175dda87f05d8a94bb403a)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
bitbake/lib/bb/runqueue.py

index 8a88fe026dc02cf0d991f0b9f25b556af802d4c9..abf7c003e583286d471cb17c3ae0de657ad0c19f 100644 (file)
@@ -46,6 +46,14 @@ class RunQueueStats:
         self.active = 0
         self.total = total
 
+    def copy(self):
+        obj = self.__class__(self.total)
+        obj.completed = self.completed
+        obj.skipped = self.skipped
+        obj.failed = self.failed
+        obj.active = self.active
+        return obj
+
     def taskFailed(self):
         self.active = self.active - 1
         self.failed = self.failed + 1
@@ -1594,7 +1602,7 @@ class runQueueEvent(bb.event.Event):
     def __init__(self, task, stats, rq):
         self.taskid = task
         self.taskstring = rq.rqdata.get_user_idstring(task)
-        self.stats = stats
+        self.stats = stats.copy()
         bb.event.Event.__init__(self)
 
 class runQueueTaskStarted(runQueueEvent):