summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2001-12-30 00:21:33 (GMT)
committerSteven Knight <knight@baldmt.com>2001-12-30 00:21:33 (GMT)
commite94e97e7e52a1ff8edea07a3a65a7793a3fac1ff (patch)
tree3bf67fc0a9fd696a0e0d322ecd66af44cdbf8989 /src/engine/SCons
parent19318e0471d8ae3f223b867010a437986382f4d2 (diff)
downloadSCons-e94e97e7e52a1ff8edea07a3a65a7793a3fac1ff.zip
SCons-e94e97e7e52a1ff8edea07a3a65a7793a3fac1ff.tar.gz
SCons-e94e97e7e52a1ff8edea07a3a65a7793a3fac1ff.tar.bz2
Fix race condition with --debug=tree and -j
Diffstat (limited to 'src/engine/SCons')
-rw-r--r--src/engine/SCons/Script/__init__.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/engine/SCons/Script/__init__.py b/src/engine/SCons/Script/__init__.py
index 3b5a79d..9b5430f 100644
--- a/src/engine/SCons/Script/__init__.py
+++ b/src/engine/SCons/Script/__init__.py
@@ -71,19 +71,22 @@ class BuildTask(SCons.Taskmaster.Task):
if self.target.get_state() == SCons.Node.up_to_date:
if self.top:
print 'scons: "%s" is up to date.' % str(self.target)
- if print_tree:
- print
- print SCons.Util.render_tree(self.target, get_children)
else:
try:
self.target.build()
- if self.top and print_tree:
- print
- print SCons.Util.render_tree(self.target, get_children)
except BuildError, e:
sys.stderr.write("scons: *** [%s] Error %s\n" % (e.node, str(e.stat)))
raise
+ def executed(self):
+ SCons.Taskmaster.Task.executed(self)
+ # print the tree here instead of in execute() because
+ # this method is serialized, but execute isn't:
+ if print_tree and self.top:
+ print
+ print SCons.Util.render_tree(self.target, get_children)
+
+
def failed(self):
global ignore_errors
if ignore_errors: