From: mkr Date: Wed, 5 Oct 2005 07:33:36 +0000 (+0000) Subject: Fix for bug IPAL10056 : Crash after run Dataflow and creating new file. X-Git-Tag: ForTest_3_1_0a2~8 X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsuperv.git;a=commitdiff_plain;h=2a9640deb52c023a3a652fcd109d76e3c2fe4ebf Fix for bug IPAL10056 : Crash after run Dataflow and creating new file. --- diff --git a/src/GraphExecutor/DataFlowExecutor_InNode.cxx b/src/GraphExecutor/DataFlowExecutor_InNode.cxx index 37dadbd..20ae275 100644 --- a/src/GraphExecutor/DataFlowExecutor_InNode.cxx +++ b/src/GraphExecutor/DataFlowExecutor_InNode.cxx @@ -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 )