diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2015-08-26 13:50:47 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-08-29 14:03:49 +0100 |
commit | 294948c732b4387375bae36350d8430c5e233590 (patch) | |
tree | ceb1c59f15bc49b957d9e85c507a6cff3d844d99 /bitbake/lib | |
parent | 7ee503e7c59e24a4a096f0052afb91325f82e663 (diff) | |
download | poky-294948c732b4387375bae36350d8430c5e233590.tar.gz |
bitbake: lib/bb/cooker: add interrupted flag to BuildCompleted event
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).
(Bitbake rev: df2b778efd2ecc48f6c5a3ed446f6459f2250035)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib')
-rw-r--r-- | bitbake/lib/bb/cooker.py | 10 | ||||
-rw-r--r-- | bitbake/lib/bb/event.py | 3 |
2 files changed, 10 insertions, 3 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 6dc9f1981d..99c47859d9 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py | |||
@@ -1319,12 +1319,15 @@ class BBCooker: | |||
1319 | def buildFileIdle(server, rq, abort): | 1319 | def buildFileIdle(server, rq, abort): |
1320 | 1320 | ||
1321 | msg = None | 1321 | msg = None |
1322 | interrupted = 0 | ||
1322 | if abort or self.state == state.forceshutdown: | 1323 | if abort or self.state == state.forceshutdown: |
1323 | rq.finish_runqueue(True) | 1324 | rq.finish_runqueue(True) |
1324 | msg = "Forced shutdown" | 1325 | msg = "Forced shutdown" |
1326 | interrupted = 2 | ||
1325 | elif self.state == state.shutdown: | 1327 | elif self.state == state.shutdown: |
1326 | rq.finish_runqueue(False) | 1328 | rq.finish_runqueue(False) |
1327 | msg = "Stopped build" | 1329 | msg = "Stopped build" |
1330 | interrupted = 1 | ||
1328 | failures = 0 | 1331 | failures = 0 |
1329 | try: | 1332 | try: |
1330 | retval = rq.execute_runqueue() | 1333 | retval = rq.execute_runqueue() |
@@ -1336,7 +1339,7 @@ class BBCooker: | |||
1336 | return False | 1339 | return False |
1337 | 1340 | ||
1338 | if not retval: | 1341 | if not retval: |
1339 | bb.event.fire(bb.event.BuildCompleted(len(rq.rqdata.runq_fnid), buildname, item, failures), self.expanded_data) | 1342 | bb.event.fire(bb.event.BuildCompleted(len(rq.rqdata.runq_fnid), buildname, item, failures, interrupted), self.expanded_data) |
1340 | self.command.finishAsyncCommand(msg) | 1343 | self.command.finishAsyncCommand(msg) |
1341 | return False | 1344 | return False |
1342 | if retval is True: | 1345 | if retval is True: |
@@ -1352,12 +1355,15 @@ class BBCooker: | |||
1352 | 1355 | ||
1353 | def buildTargetsIdle(server, rq, abort): | 1356 | def buildTargetsIdle(server, rq, abort): |
1354 | msg = None | 1357 | msg = None |
1358 | interrupted = 0 | ||
1355 | if abort or self.state == state.forceshutdown: | 1359 | if abort or self.state == state.forceshutdown: |
1356 | rq.finish_runqueue(True) | 1360 | rq.finish_runqueue(True) |
1357 | msg = "Forced shutdown" | 1361 | msg = "Forced shutdown" |
1362 | interrupted = 2 | ||
1358 | elif self.state == state.shutdown: | 1363 | elif self.state == state.shutdown: |
1359 | rq.finish_runqueue(False) | 1364 | rq.finish_runqueue(False) |
1360 | msg = "Stopped build" | 1365 | msg = "Stopped build" |
1366 | interrupted = 1 | ||
1361 | failures = 0 | 1367 | failures = 0 |
1362 | try: | 1368 | try: |
1363 | retval = rq.execute_runqueue() | 1369 | retval = rq.execute_runqueue() |
@@ -1369,7 +1375,7 @@ class BBCooker: | |||
1369 | return False | 1375 | return False |
1370 | 1376 | ||
1371 | if not retval: | 1377 | if not retval: |
1372 | bb.event.fire(bb.event.BuildCompleted(len(rq.rqdata.runq_fnid), buildname, targets, failures), self.data) | 1378 | bb.event.fire(bb.event.BuildCompleted(len(rq.rqdata.runq_fnid), buildname, targets, failures, interrupted), self.data) |
1373 | self.command.finishAsyncCommand(msg) | 1379 | self.command.finishAsyncCommand(msg) |
1374 | return False | 1380 | return False |
1375 | if retval is True: | 1381 | if retval is True: |
diff --git a/bitbake/lib/bb/event.py b/bitbake/lib/bb/event.py index 0e181102c6..3f96bcab32 100644 --- a/bitbake/lib/bb/event.py +++ b/bitbake/lib/bb/event.py | |||
@@ -370,11 +370,12 @@ class BuildStarted(BuildBase, OperationStarted): | |||
370 | 370 | ||
371 | class BuildCompleted(BuildBase, OperationCompleted): | 371 | class BuildCompleted(BuildBase, OperationCompleted): |
372 | """bbmake build run completed""" | 372 | """bbmake build run completed""" |
373 | def __init__(self, total, n, p, failures = 0): | 373 | def __init__(self, total, n, p, failures=0, interrupted=0): |
374 | if not failures: | 374 | if not failures: |
375 | OperationCompleted.__init__(self, total, "Building Succeeded") | 375 | OperationCompleted.__init__(self, total, "Building Succeeded") |
376 | else: | 376 | else: |
377 | OperationCompleted.__init__(self, total, "Building Failed") | 377 | OperationCompleted.__init__(self, total, "Building Failed") |
378 | self._interrupted = interrupted | ||
378 | BuildBase.__init__(self, n, p, failures) | 379 | BuildBase.__init__(self, n, p, failures) |
379 | 380 | ||
380 | class DiskFull(Event): | 381 | class DiskFull(Event): |