summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Taskmaster.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2002-02-18 22:34:59 (GMT)
committerSteven Knight <knight@baldmt.com>2002-02-18 22:34:59 (GMT)
commit2db9879e1b4671c412b50a8a3c67eda1c6c95d93 (patch)
tree7d249871746d7775d3da397778778f0ffbea3308 /src/engine/SCons/Taskmaster.py
parentc71fa63caaa49aeeb7753a28a630d0d8de7e5606 (diff)
downloadSCons-2db9879e1b4671c412b50a8a3c67eda1c6c95d93.zip
SCons-2db9879e1b4671c412b50a8a3c67eda1c6c95d93.tar.gz
SCons-2db9879e1b4671c412b50a8a3c67eda1c6c95d93.tar.bz2
Efficiency: On the Taskmaster's Walker's out-of-date checks, don't return any children if the node itself has already been visited.
Diffstat (limited to 'src/engine/SCons/Taskmaster.py')
-rw-r--r--src/engine/SCons/Taskmaster.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/engine/SCons/Taskmaster.py b/src/engine/SCons/Taskmaster.py
index 558845d..cdee378 100644
--- a/src/engine/SCons/Taskmaster.py
+++ b/src/engine/SCons/Taskmaster.py
@@ -166,6 +166,10 @@ class Taskmaster:
def __init__(self, targets=[], tasker=Task, calc=Calc()):
def out_of_date(node):
+ if node.get_state():
+ # The state is set, so someone has already been here
+ # (finished or currently executing). Find another one.
+ return []
# Scan the file before fetching its children().
node.scan()
return filter(lambda x: x.get_state() != SCons.Node.up_to_date,