summaryrefslogtreecommitdiffstats
path: root/lib/bb/cooker.py
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2008-03-15 12:41:09 +0000
committerRichard Purdie <rpurdie@linux.intel.com>2008-03-15 12:41:09 +0000
commitbe5a87bcaa11221d3843b284cedde44805f107b1 (patch)
tree8146570dc99696e2e991306366fef5727f1d51ac /lib/bb/cooker.py
parentcc88a6c51e26525aed8a0685fc98b197a1c62691 (diff)
downloadbitbake-be5a87bcaa11221d3843b284cedde44805f107b1.tar.gz
cooker.py: Turn buildFile into a fully blown offline command with idle function fixing -b issues
Diffstat (limited to 'lib/bb/cooker.py')
-rw-r--r--lib/bb/cooker.py34
1 files changed, 24 insertions, 10 deletions
diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
index c4dabf004..e0cfe4344 100644
--- a/lib/bb/cooker.py
+++ b/lib/bb/cooker.py
@@ -652,17 +652,31 @@ class BBCooker:
# Execute the runqueue
runlist = [[item, "do_%s" % self.configuration.cmd]]
+
rq = bb.runqueue.RunQueue(self, self.configuration.data, self.status, taskdata, runlist)
- rq.prepare_runqueue()
- try:
- failures = rq.execute_runqueue()
- except runqueue.TaskFailure, fnids:
- for fnid in fnids:
- bb.msg.error(bb.msg.domain.Build, "'%s' failed" % taskdata.fn_index[fnid])
- return False
- bb.event.fire(bb.event.BuildCompleted(buildname, [item], self.configuration.event_data, failures))
- bb.event.fire(bb.command.CookerCommandCompleted(self.configuration.event_data))
+ def buildFileIdle(server, rq, abort):
+
+ if abort or self.cookerAction == cookerStop:
+ rq.finish_runqueue(True)
+ elif self.cookerAction == cookerShutdown:
+ rq.finish_runqueue(False)
+ failures = 0
+ try:
+ retval = rq.execute_runqueue()
+ except runqueue.TaskFailure, fnids:
+ for fnid in fnids:
+ bb.msg.error(bb.msg.domain.Build, "'%s' failed" % taskdata.fn_index[fnid])
+ failures = failures + 1
+ retval = False
+ if not retval:
+ self.cookerIdle = True
+ self.command.finishOfflineCommand()
+ bb.event.fire(bb.event.BuildCompleted(buildname, targets, self.configuration.event_data, failures))
+ return retval
+
+ self.cookerIdle = False
+ self.server.register_idle_function(buildFileIdle, rq)
def buildTargets(self, targets):
"""
@@ -689,9 +703,9 @@ class BBCooker:
failures = failures + 1
retval = False
if not retval:
- bb.event.fire(bb.event.BuildCompleted(buildname, targets, self.configuration.event_data, failures))
self.cookerIdle = True
self.command.finishOfflineCommand()
+ bb.event.fire(bb.event.BuildCompleted(buildname, targets, self.configuration.event_data, failures))
return retval
self.buildSetVars()