code: def start(self):
          
          
          while True:
              task = self.taskmaster.next_task()
  
              if task is None:
                  break
  
              try:
                  task.prepare()
                  if task.needs_execute():
                      task.execute()
              except:
                  if self.interrupted():
                      try:
                          raise SCons.Errors.BuildError(
                              task.targets[0], errstr=interrupt_msg)
                      except:
                          task.exception_set()
                  else:
                      task.exception_set()
  
                  # Let the failed() callback function arrange for the
                  # build to stop if that's appropriate.
                  task.failed()
              else:
                  task.executed()
  
              task.postprocess()
          self.taskmaster.cleanup()
docs: Start the job. This will begin pulling tasks from the taskmaster
          and executing them, and return when there are no more tasks. If a task
          fails to execute (i.e. execute() raises an exception), then the job will
          stop.