Salome HOME
Fix for bug IPAL10056 : Crash after run Dataflow and creating new file.
authormkr <mkr@opencascade.com>
Wed, 5 Oct 2005 07:33:36 +0000 (07:33 +0000)
committermkr <mkr@opencascade.com>
Wed, 5 Oct 2005 07:33:36 +0000 (07:33 +0000)
src/GraphExecutor/DataFlowExecutor_InNode.cxx

index 37dadbd66f12fc40b15775e11dfd672153962559..20ae2758578909fb91a368852c29058cd05eb5a8 100644 (file)
@@ -1251,15 +1251,16 @@ bool GraphExecutor::InNode::StateWait( SUPERV::GraphState aState ) {
     cdebug_in << pthread_self() << " StateWait( Running ) " << RetVal
               << " " << Automaton()->StateName( _currentState )
               << " pthread_cond_wait _RunningWait " << Name() << endl ;
-    while ( !RetVal && !IsDone() ) {
+    // mkr : IPAL10056 : additional checking for node aborted
+    while ( !RetVal && !IsDone() && !_OutNode->IsNodeAborted() ) {
       cdebug << pthread_self() << " pthread_cond_wait RunningWait " << Name() << endl ;
       pthread_cond_wait( &_RunningWait , &_MutexWait );
 //We may have pthread_cond_waited but !IsRunning and !IsDone :
       RetVal = IsRunning() || State() == GraphExecutor::SuccessedExecutingState ||
-               State() == GraphExecutor::ErroredExecutingState ;
+              State() == GraphExecutor::ErroredExecutingState ;
       cdebug << pthread_self() << " pthread_cond_waited RunningWait "
-             << Automaton()->StateName( _currentState ) << " " << RetVal
-             << " " << Name() << endl ;
+            << Automaton()->StateName( _currentState ) << " " << RetVal
+            << " " << Name() << endl ;
     }
     cdebug_out << pthread_self() << " StateWait( Running ) " << RetVal
                << " " << Automaton()->StateName( _currentState )