From b71832ebbd13e28e10ff5f22a206d175d7b62a83 Mon Sep 17 00:00:00 2001 From: Julien-Haudegond <44610840+Julien-Haudegond@users.noreply.github.com> Date: Thu, 20 Aug 2020 15:53:02 +0200 Subject: [PATCH] [core] Node: stopComputation method - Node: stopComputation method. - Task Manager: avoid stopping the entire task manager when a node is stopped. --- meshroom/core/node.py | 6 ++++++ meshroom/core/taskManager.py | 4 +--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/meshroom/core/node.py b/meshroom/core/node.py index 67f1a7df..7693c4a5 100644 --- a/meshroom/core/node.py +++ b/meshroom/core/node.py @@ -788,6 +788,12 @@ class BaseNode(BaseObject): def endSequence(self): pass + def stopComputation(self): + """ Stop the computation of this node. """ + for chunk in self._chunks.values(): + if not chunk.isExtern(): + chunk.stopProcess() + def getGlobalStatus(self): """ Get node global status based on the status of its chunks. diff --git a/meshroom/core/taskManager.py b/meshroom/core/taskManager.py index f38537b4..8063f5f1 100644 --- a/meshroom/core/taskManager.py +++ b/meshroom/core/taskManager.py @@ -56,9 +56,7 @@ class TaskThread(Thread): chunk.process(self.forceCompute) except Exception as e: if chunk.isStopped(): - self._state = State.STOPPED - self._manager._graph.clearSubmittedNodes() - self._manager._nodesToProcess = [] + pass else: logging.error("Error on node computation: {}".format(e)) nodesToRemove, _ = self._manager._graph.nodesFromNode(node)