summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Taskmaster.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2003-03-03 19:39:25 (GMT)
committerSteven Knight <knight@baldmt.com>2003-03-03 19:39:25 (GMT)
commit57847f39e8598008ce3acddbcfb5a117e6981b3d (patch)
treeb6fc19421b03826488e03d795c4c258002f4ede7 /src/engine/SCons/Taskmaster.py
parent1eac1ba89777cce14d1ed50322ee163e8b38fd1e (diff)
downloadSCons-57847f39e8598008ce3acddbcfb5a117e6981b3d.zip
SCons-57847f39e8598008ce3acddbcfb5a117e6981b3d.tar.gz
SCons-57847f39e8598008ce3acddbcfb5a117e6981b3d.tar.bz2
Add an Exit() function for explicit termination of SCons.
Diffstat (limited to 'src/engine/SCons/Taskmaster.py')
-rw-r--r--src/engine/SCons/Taskmaster.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/engine/SCons/Taskmaster.py b/src/engine/SCons/Taskmaster.py
index 68e251c..2ab076b 100644
--- a/src/engine/SCons/Taskmaster.py
+++ b/src/engine/SCons/Taskmaster.py
@@ -83,6 +83,8 @@ class Task:
self.targets[0].build()
except KeyboardInterrupt:
raise
+ except SystemExit:
+ raise SCons.Errors.ExplicitExit(self.targets[0], sys.exc_value.code)
except SCons.Errors.UserError:
raise
except SCons.Errors.BuildError:
@@ -215,6 +217,12 @@ class Taskmaster:
try:
children = node.children()
+ except SystemExit:
+ e = SCons.Errors.ExplicitExit(node, sys.exc_value.code)
+ self.exception_set(SCons.Errors.ExplicitExit, e)
+ self.candidates.pop()
+ self.ready = node
+ break
except:
# We had a problem just trying to figure out the
# children (like a child couldn't be linked in to a