Salome HOME
A bug was fixed: _Loading field is set to "false" (as it normally should be except...
authorasv <asv@opencascade.com>
Mon, 13 Dec 2004 14:36:34 +0000 (14:36 +0000)
committerasv <asv@opencascade.com>
Mon, 13 Dec 2004 14:36:34 +0000 (14:36 +0000)
1) constructors of InNode (in InitInNode() )
2) before invocation of Python interpreteur during InLine nodes' excution.

src/GraphExecutor/DataFlowExecutor_InNode.cxx
src/GraphExecutor/DataFlowExecutor_InNodeThreads.cxx

index c2884eb8cf8b9d934b7b14bd213a934c7f748221..cea63629315e88863a9ea148f469ba600913332f 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 ;
index 99a79156c79951b05f991b8cb31fb624ead782ed..50b386191e9f6a4d7d82ecfba53fa8da3b27ee6c 100644 (file)
@@ -1191,6 +1191,9 @@ int GraphExecutor::InNode::DataReady_ExecuteAction() {
           bool StsPyDynInvoke = true;
          _OutNode->PyThreadLock() ;
           SetPyCpuUsed() ;
+         IsLoading( false ); // loading complete for InLine nodes. For Computing and Factory - there still
+                             // is some work to be done..  IsLoading( false ) for them is called later just before
+                              // calling DynInvoke()..  but for InLine PyDynInvoke() is called just right here below..  
           try {
 //            if ( IsInLineNode() && (*InLineNode()->PythonFunction()).length() &&
             bool CopyInOut = false ;