[bitbake-devel] [PATCH 1/1] lib/bb/cooker: add interrupted flag to BuildCompleted event
Paul Eggleton
paul.eggleton at linux.intel.com
Wed Aug 26 12:50:47 UTC 2015
Allow any listeners for this event (such as buildhistory.bbclass in
OpenEmbedded) to find out if the build was interrupted rather than
completing normally. The value will be 0 if not interrupted, 1 if
interrupted waiting for remaining tasks to complete, or 2 if force
interrupted (stopping any running tasks immediately).
Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
---
lib/bb/cooker.py | 10 ++++++++--
lib/bb/event.py | 3 ++-
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
index 6dc9f19..99c4785 100644
--- a/lib/bb/cooker.py
+++ b/lib/bb/cooker.py
@@ -1319,12 +1319,15 @@ class BBCooker:
def buildFileIdle(server, rq, abort):
msg = None
+ interrupted = 0
if abort or self.state == state.forceshutdown:
rq.finish_runqueue(True)
msg = "Forced shutdown"
+ interrupted = 2
elif self.state == state.shutdown:
rq.finish_runqueue(False)
msg = "Stopped build"
+ interrupted = 1
failures = 0
try:
retval = rq.execute_runqueue()
@@ -1336,7 +1339,7 @@ class BBCooker:
return False
if not retval:
- bb.event.fire(bb.event.BuildCompleted(len(rq.rqdata.runq_fnid), buildname, item, failures), self.expanded_data)
+ bb.event.fire(bb.event.BuildCompleted(len(rq.rqdata.runq_fnid), buildname, item, failures, interrupted), self.expanded_data)
self.command.finishAsyncCommand(msg)
return False
if retval is True:
@@ -1352,12 +1355,15 @@ class BBCooker:
def buildTargetsIdle(server, rq, abort):
msg = None
+ interrupted = 0
if abort or self.state == state.forceshutdown:
rq.finish_runqueue(True)
msg = "Forced shutdown"
+ interrupted = 2
elif self.state == state.shutdown:
rq.finish_runqueue(False)
msg = "Stopped build"
+ interrupted = 1
failures = 0
try:
retval = rq.execute_runqueue()
@@ -1369,7 +1375,7 @@ class BBCooker:
return False
if not retval:
- bb.event.fire(bb.event.BuildCompleted(len(rq.rqdata.runq_fnid), buildname, targets, failures), self.data)
+ bb.event.fire(bb.event.BuildCompleted(len(rq.rqdata.runq_fnid), buildname, targets, failures, interrupted), self.data)
self.command.finishAsyncCommand(msg)
return False
if retval is True:
diff --git a/lib/bb/event.py b/lib/bb/event.py
index 0e18110..3f96bca 100644
--- a/lib/bb/event.py
+++ b/lib/bb/event.py
@@ -370,11 +370,12 @@ class BuildStarted(BuildBase, OperationStarted):
class BuildCompleted(BuildBase, OperationCompleted):
"""bbmake build run completed"""
- def __init__(self, total, n, p, failures = 0):
+ def __init__(self, total, n, p, failures=0, interrupted=0):
if not failures:
OperationCompleted.__init__(self, total, "Building Succeeded")
else:
OperationCompleted.__init__(self, total, "Building Failed")
+ self._interrupted = interrupted
BuildBase.__init__(self, n, p, failures)
class DiskFull(Event):
--
2.1.0
More information about the bitbake-devel
mailing list