[bitbake-devel,12/26] runqueue: Simplify _execute_runqueue logic

Submitted by Richard Purdie on July 10, 2019, 11:54 p.m. | Patch ID: 162961

Details

Message ID 20190710235420.23825-12-richard.purdie@linuxfoundation.org
State Accepted
Commit 726e3c61a69fef16e605ba9b911a17cd99f1a2c3
Headers show

Commit Message

Richard Purdie July 10, 2019, 11:54 p.m.
Cleanup to the _execute_runqueue logic to reduce indentation, drop the
dummy executor class concept and prepare for further changes.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
 lib/bb/runqueue.py | 46 ++++++++++++++++++++++++----------------------
 1 file changed, 24 insertions(+), 22 deletions(-)

Patch hide | download patch | download mbox

diff --git a/lib/bb/runqueue.py b/lib/bb/runqueue.py
index 3456fd976b..a19fb61fe7 100644
--- a/lib/bb/runqueue.py
+++ b/lib/bb/runqueue.py
@@ -1420,15 +1420,16 @@  class RunQueue:
                 self.state = runQueueComplete
             else:
                 self.state = runQueueSceneInit
-                self.rqdata.init_progress_reporter.next_stage()
-
-                # we are ready to run,  emit dependency info to any UI or class which
-                # needs it
-                depgraph = self.cooker.buildDependTree(self, self.rqdata.taskData)
-                self.rqdata.init_progress_reporter.next_stage()
-                bb.event.fire(bb.event.DepTreeGenerated(depgraph), self.cooker.data)
 
         if self.state is runQueueSceneInit:
+            self.rqdata.init_progress_reporter.next_stage()
+
+            # we are ready to run,  emit dependency info to any UI or class which
+            # needs it
+            depgraph = self.cooker.buildDependTree(self, self.rqdata.taskData)
+            self.rqdata.init_progress_reporter.next_stage()
+            bb.event.fire(bb.event.DepTreeGenerated(depgraph), self.cooker.data)
+
             if not self.dm_event_handler_registered:
                  res = bb.event.register(self.dm_event_handler_name,
                                          lambda x: self.dm.check(self) if self.state in [runQueueSceneRun, runQueueRunning, runQueueCleanUp] else False,
@@ -1444,13 +1445,13 @@  class RunQueue:
                 if 'printdiff' in dump:
                     self.write_diffscenetasks(invalidtasks)
                 self.state = runQueueComplete
-            else:
-                self.rqdata.init_progress_reporter.next_stage()
-                self.start_worker()
-                self.rqdata.init_progress_reporter.next_stage()
-                if not self.rqexe:
-                    self.rqexe = RunQueueExecute(self)
-                start_scenequeue_tasks(self.rqexe)
+
+        if self.state is runQueueSceneInit:
+            self.rqdata.init_progress_reporter.next_stage()
+            self.start_worker()
+            self.rqdata.init_progress_reporter.next_stage()
+            self.rqexe = RunQueueExecute(self)
+            start_scenequeue_tasks(self.rqexe)
 
         if self.state is runQueueSceneRun:
             retval = self.rqexe.sq_execute()
@@ -1458,14 +1459,15 @@  class RunQueue:
         if self.state is runQueueRunInit:
             if self.cooker.configuration.setsceneonly:
                 self.state = runQueueComplete
-            else:
-                # Just in case we didn't setscene
-                self.rqdata.init_progress_reporter.finish()
-                logger.info("Executing RunQueue Tasks")
-                if not self.rqexe:
-                    self.rqexe = RunQueueExecute(self)
-                start_runqueue_tasks(self.rqexe)
-                self.state = runQueueRunning
+
+        if self.state is runQueueRunInit:
+            # Just in case we didn't setscene
+            self.rqdata.init_progress_reporter.finish()
+            logger.info("Executing RunQueue Tasks")
+            if not self.rqexe:
+                self.rqexe = RunQueueExecute(self)
+            start_runqueue_tasks(self.rqexe)
+            self.state = runQueueRunning
 
         if self.state is runQueueRunning:
             retval = self.rqexe.execute()