summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/SConf.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2004-07-13 06:13:18 (GMT)
committerSteven Knight <knight@baldmt.com>2004-07-13 06:13:18 (GMT)
commit9d2af963f5da83955b06353104b44ad01c86716c (patch)
tree62dbd0e4ee82caf4bf3202b8aa8e53be76a9f49a /src/engine/SCons/SConf.py
parent321ac083cf44290c309b7021594c3941bfa3f82f (diff)
downloadSCons-9d2af963f5da83955b06353104b44ad01c86716c.zip
SCons-9d2af963f5da83955b06353104b44ad01c86716c.tar.gz
SCons-9d2af963f5da83955b06353104b44ad01c86716c.tar.bz2
Make exception handling thread-safe by using sys.exc_info() instead of sys.exc_{type,value}.
Diffstat (limited to 'src/engine/SCons/SConf.py')
-rw-r--r--src/engine/SCons/SConf.py11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/engine/SCons/SConf.py b/src/engine/SCons/SConf.py
index 6280f75..0cda8c1 100644
--- a/src/engine/SCons/SConf.py
+++ b/src/engine/SCons/SConf.py
@@ -189,13 +189,16 @@ class SConf:
if (target.get_state() != SCons.Node.up_to_date and
target.has_builder() and
not hasattr(target.builder, 'status')):
-
+
raise SCons.Errors.ConfigureDryRunError(target)
def failed(self):
- if sys.exc_type == SCons.Errors.ConfigureDryRunError:
- raise
- SConfBuildTask.failed(self)
+ exc_type, exc_value = self.exc_info()[:2]
+ if exc_type == SCons.Errors.ConfigureDryRunError:
+ raise exc_type, exc_value
+ # Should be SConfBuildTask.failed(), really,
+ # but that causes name errors in Python 1.5.2.
+ SCons.Script.BuildTask.failed(self)
if self.logstream != None:
# override stdout / stderr to write in log file