]> SALOME platform Git repositories - modules/superv.git/commitdiff
Salome HOME
Fix for bugs: V3_2_2
authormkr <mkr@opencascade.com>
Tue, 5 Sep 2006 07:03:48 +0000 (07:03 +0000)
committermkr <mkr@opencascade.com>
Tue, 5 Sep 2006 07:03:48 +0000 (07:03 +0000)
1) IPAL9273 (Application crashes after trying to close Graph Supervisor viewer with running dataflow)
2) IPAL9369 (3.0.0 (debianex: INSTALL2): CRASH after link deletion of the running dataflow)
3) IPAL9731 (CRASH after trying to kill dataflow execution)

src/GraphExecutor/DataFlowExecutor_DynInvoke.cxx
src/SUPERVGUI/SUPERVGUI_CanvasNodePrs.cxx
src/SUPERVGUI/SUPERVGUI_Main.cxx

index 157abdda2a4085c46f7f0eebff13179704774688..9d840c6d92926522169e0c7bbeca1457c8d0e1e9 100644 (file)
@@ -196,8 +196,12 @@ void GraphExecutor::InNode::DynInvoke(Engines::Component_ptr objComponent ,
 #endif
   }
 
-  req->invoke();
-
+  // IPAL9273, 9369, 9731 : replace blocking function invoke() with non blocking send_deferred()
+  // to provide the correct process of killing dataflow execution
+  req->send_deferred() ;
+  while( !req->poll_response() ) {}
+  req->get_response();
+  
   if( req->env()->exception() ) {
     req->env()->exception()->_raise() ;
     return ; // pas utile ?
index 9fc76b755234145b1a8019c7ea6aeb3d6a775322..c5d107df1af309255346fb8becba5789ed54c315 100644 (file)
@@ -777,7 +777,10 @@ void SUPERVGUI_CanvasNodePrs::setState(SUPERV::GraphState theState)
     break;
   }
 
-  long sec = myNode->getEngine()->CpuUsed();
+  long sec = 0;
+  // IPAL9273, 9369, 9731
+  if ( theState != SUPERV_Kill && myNode->getMain()->getDataflow()->State() != SUPERV_Kill )
+    sec = myNode->getEngine()->CpuUsed();
   char hms[9];
   long s = sec/3600;
   hms[0]=(char)(((s/10)%10)+48);
index d62e781806555044a785e88343ffe8fcc8ea6b28..deb10c225b75f7c71673565ef46322a0fa32e286 100644 (file)
@@ -756,7 +756,9 @@ void SUPERVGUI_Main::kill() {
     QMessageBox::warning(SUIT_Session::session()->activeApplication()->desktop(), tr("ERROR"), tr("MSG_DF_NOTRUNNING"));
   } 
   else if (dataflow->Kill()) {
-    getMessage()->putMessage( tr("MSG_GRAPH_KILLED") );
+    // IPAL9273, 9369, 9731 : to avoid two equal messages about killing dataflow
+    //                        execution in the Message Console
+    //getMessage()->putMessage( tr("MSG_GRAPH_KILLED") );
     sync();
   } 
   else {