From 0f42f6b640813ca4d5a9d7b4292dafea563d2d7d Mon Sep 17 00:00:00 2001
From: Chris Larson <chris_larson@mentor.com>
Date: Wed, 16 Feb 2011 15:18:06 -0700
Subject: runqueue: pass a copy of the RunQueueStats to events

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 | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

(limited to 'bitbake/lib/bb')

diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
index 8a88fe026..abf7c003e 100644
--- a/bitbake/lib/bb/runqueue.py
+++ b/bitbake/lib/bb/runqueue.py
@@ -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):
-- 
cgit v1.2.3