Salome HOME
Bug fix: don't set "Loading" state for MacroNodes in InitialState() function (called...
[modules/superv.git] / src / GraphExecutor / DataFlowExecutor_InNode.cxx
index c2884eb8cf8b9d934b7b14bd213a934c7f748221..e03187981ecf14869adaff2be373016473aad782 100644 (file)
@@ -76,7 +76,8 @@ static void InitInNode( int &_RewindStack ,
                         GraphExecutor::FiniteStateMachine ** _Automaton ,
                         GraphExecutor::FiniteStateMachine * theAutomaton ,
                         CORBA::ORB_ptr * _Orb ,
-                        CORBA::ORB_ptr ORB ) {
+                        CORBA::ORB_ptr ORB,
+                       bool &_Loading ) {
   _RewindStack = 0 ;
   _ControlState = SUPERV::VoidState ;
   _currentState = GraphExecutor::UnKnownState ;
@@ -128,6 +129,7 @@ static void InitInNode( int &_RewindStack ,
   }
   *_Automaton = theAutomaton ;
   *_Orb = CORBA::ORB::_nil();
+  _Loading = false;
 }
 
 GraphExecutor::FiniteStateMachine * theAutomaton = new GraphExecutor::FiniteStateMachine() ;
@@ -160,7 +162,8 @@ GraphExecutor::InNode::InNode() {
               &_Automaton ,
               theAutomaton ,
               &_Orb ,
-              CORBA::ORB::_nil() ) ;
+              CORBA::ORB::_nil(),
+             _Loading ) ;
 }
 
 GraphExecutor::InNode::InNode( CORBA::ORB_ptr ORB,
@@ -217,10 +220,10 @@ GraphExecutor::InNode::InNode( CORBA::ORB_ptr ORB,
               &_Automaton ,
               theAutomaton ,
               &_Orb ,
-              ORB ) ;
+              ORB,
+             _Loading ) ;
   SetDebug( ORB , Graph_prof_debug , Graph_fdebug ) ;
 
-  _Loading = false ;
   _ComputingNode = NULL ;
   _FactoryNode = NULL ;
   _InLineNode = NULL ;
@@ -1313,7 +1316,11 @@ void GraphExecutor::InNode::InitialState()
   CreateNewThreadIf( false ) ;
   _SuspendSync = false ;
   _ResumeSync = false ;
-  IsLoading( true ) ;
+
+  // asv : 13.12.04 : "Loading" state is ON (and OFF eventially) only for Computing, Factory, Inline nodes
+  if ( !IsMacroNode() )
+    IsLoading( true ) ;
+
 //  ThreadNo( pthread_self() ) ;
   ThreadNo( 0 ) ;