bitbake: runqueue: Add sceneQueueComplete event
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Sat, 2 Aug 2014 08:51:00 +0000 (09:51 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sun, 3 Aug 2014 11:40:41 +0000 (12:40 +0100)
Its useful to have an event emitted when all of the sceneQueue tasks
have completed since the metadata can hook this for processing.
Therefore add such an event.

(Bitbake rev: 38d4f65bf1cbcdd5a2d60dff0e1d2859c34ed62e)

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

index f68a11d..baaac44 100644 (file)
@@ -1985,6 +1985,10 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
         logger.debug(1, 'We can skip tasks %s', sorted(self.rq.scenequeue_covered))
 
         self.rq.state = runQueueRunInit
+
+        completeevent = sceneQueueComplete(self.stats, self.rq)
+        bb.event.fire(completeevent, self.cfgData)
+
         return True
 
     def runqueue_process_waitpid(self, task, status):
@@ -2067,6 +2071,14 @@ class sceneQueueTaskFailed(sceneQueueEvent):
         sceneQueueEvent.__init__(self, task, stats, rq)
         self.exitcode = exitcode
 
+class sceneQueueComplete(sceneQueueEvent):
+    """
+    Event when all the sceneQueue tasks are complete
+    """
+    def __init__(self, stats, rq):
+        self.stats = stats.copy()
+        bb.event.Event.__init__(self)
+
 class runQueueTaskCompleted(runQueueEvent):
     """
     Event notifing a task completed