From 2584785efa0ef00bbc60c821db628789b809103c Mon Sep 17 00:00:00 2001 From: rahuel Date: Tue, 13 Feb 2007 09:11:09 +0000 Subject: [PATCH] NPAL14110 : When we get an output value at the end of execution of a node and if that value is an output of a SubGraph corresponding to a MacroNode, that value was transmitted immediatly. So a node of the Graph of that MacroNode may be activated before the End of execution of the SubGraph. And moreover, if there was a loop in the SubGraph, that output value was transmitted for each step of the loop. So a same node in the Graph of the MacroNode may be activated a few times for each output value. Now output values of a subgraph are transmitted to the corresponding MacroNode only once at the end of the SubGraph (CheckAllDone method) --- src/GraphExecutor/DataFlowExecutor_InNodeThreads.cxx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/GraphExecutor/DataFlowExecutor_InNodeThreads.cxx b/src/GraphExecutor/DataFlowExecutor_InNodeThreads.cxx index 9a81362..8b57213 100644 --- a/src/GraphExecutor/DataFlowExecutor_InNodeThreads.cxx +++ b/src/GraphExecutor/DataFlowExecutor_InNodeThreads.cxx @@ -3937,6 +3937,10 @@ bool GraphExecutor::InNode::OutParametersSet( bool Err , const char * ToNodeName = anOutPort->ChangeInPorts( j )->NodeName() ; if ( !strcmp( ToNodeName , _OutNode->Name() ) && _OutNode->Graph()->GraphMacroLevel() != 0 ) { +//JR NPAL14110 09.02.2007 : That must be done only at the end of SubGraph because we may +// have an output of the SubGraph in a Loop !... +// So that code must be done in CheckAllDone +#if 0 #if OutParametersSetTrace cdebug << "OutParametersSet ToNodeName " << _OutNode->Name() << " CoupledNode " << _OutNode->Graph()->CoupledNodeName() << _OutNode->Graph()->CoupledNode() @@ -3952,7 +3956,7 @@ bool GraphExecutor::InNode::OutParametersSet( bool Err , << _OutNode->Graph()->CoupledNodeName() << " , " << anOutPort->ChangeInPorts( j )->PortName() << " , value )" << endl ; #endif - +#endif } else { GraphBase::ComputingNode * ToNode = _OutNode->Graph()->GetChangeGraphNode( ToNodeName ) ; -- 2.39.2