Skip to content

Commit ee408bf

Browse files
authored
Merge pull request #1300 from alicevision/fix/submitCompute
[core] TaskManager: fix compute after submit
2 parents 5431156 + 51572c8 commit ee408bf

File tree

1 file changed

+12
-20
lines changed

1 file changed

+12
-20
lines changed

meshroom/core/taskManager.py

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -173,13 +173,7 @@ def compute(self, graph=None, toNodes=None, forceCompute=False, forceStatus=Fals
173173
"""
174174
self._graph = graph
175175

176-
if self._thread._state != State.RUNNING:
177-
self._nodes.clear()
178-
externEmpty = any(node.isAlreadySubmitted() for node in self._nodesExtern)
179-
if not externEmpty:
180-
self._nodes.update(self._nodesExtern)
181-
else:
182-
self._nodesExtern = []
176+
self.updateNodes()
183177

184178
if forceCompute:
185179
nodes, edges = graph.dfsOnFinish(startNodes=toNodes)
@@ -284,6 +278,16 @@ def clear(self):
284278
self._nodesExtern = []
285279
self._nodesToProcess = []
286280

281+
def updateNodes(self):
282+
"""
283+
Update task manager nodes lists by checking the nodes status.
284+
"""
285+
self._nodesExtern = [node for node in self._nodesExtern if node.isExtern() and node.isAlreadySubmitted()]
286+
newNodes = [node for node in self._nodes if node.isAlreadySubmitted()]
287+
if len(newNodes) != len(self._nodes):
288+
self._nodes.clear()
289+
self._nodes.update(newNodes)
290+
287291
def update(self, graph):
288292
"""
289293
Add all the nodes that are being rendered in a renderfarm to the taskmanager when new graph is loaded
@@ -390,19 +394,7 @@ def submit(self, graph=None, submitter=None, toNodes=None):
390394
))
391395

392396
# Update task manager's lists
393-
if self._thread._state != State.RUNNING:
394-
self._nodes.clear()
395-
396-
externEmpty = True
397-
for node in self._nodesExtern:
398-
if node.isAlreadySubmitted():
399-
externEmpty = False
400-
break
401-
402-
if not externEmpty:
403-
self._nodes.update(self._nodesExtern)
404-
else:
405-
self._nodesExtern = []
397+
self.updateNodes()
406398

407399
# Check dependencies of toNodes
408400
if not toNodes:

0 commit comments

Comments
 (0)