]> SALOME platform Git repositories - tools/yacsgen.git/commitdiff
Salome HOME
Fixed regression when creating executable components.
authorOvidiu Mircescu <ovidiu.mircescu@edf.fr>
Tue, 15 Apr 2014 09:55:54 +0000 (11:55 +0200)
committerOvidiu Mircescu <ovidiu.mircescu@edf.fr>
Tue, 15 Apr 2014 09:55:54 +0000 (11:55 +0200)
Executable components were not killed at the end of the Salome session.

module_generator/cpp_tmpl.py
module_generator/cppcompo.py

index ea1d5616b68ede6617cc92f6f4213cfa11c4f7ea..97ead5bf6f6c552438411f30ffe22ff37826bf95 100644 (file)
@@ -36,6 +36,8 @@ ${CalciumInterface}
 #include <pthread.h>
 #include <execinfo.h>
 
+#define BUILD_EXE ${exe}
+
 typedef void (*sighandler_t)(int);
 sighandler_t setsig(int sig, sighandler_t handler)
 {
@@ -67,7 +69,7 @@ static void AttachDebugger()
   if(getenv ("DEBUGGER"))
     {
       std::stringstream exec;
-#if ${exe}
+#if BUILD_EXE
       exec << "$$DEBUGGER " << "${exe_path} " << getpid() << "&";
 #else
       exec << "$$DEBUGGER SALOME_Container " << getpid() << "&";
@@ -151,7 +153,7 @@ ${component}_i::${component}_i(CORBA::ORB_ptr orb,
                      const char *interfaceName)
           : Superv_Component_i(orb, poa, contId, instanceName, interfaceName)
 {
-#if ${exe}
+#if BUILD_EXE
   setsig(SIGSEGV,&THandler);
   set_terminate(&terminateHandler);
   set_unexpected(&unexpectedHandler);
@@ -167,7 +169,7 @@ ${component}_i::${component}_i(CORBA::ORB_ptr orb,
                      const char *interfaceName)
           : Superv_Component_i(orb, poa, container, instanceName, interfaceName)
 {
-#if ${exe}
+#if BUILD_EXE
   setsig(SIGSEGV,&THandler);
   set_terminate(&terminateHandler);
   set_unexpected(&unexpectedHandler);
@@ -183,7 +185,7 @@ ${component}_i::~${component}_i()
 
 void ${component}_i::destroy()
 {
-#if ${exe}
+#if BUILD_EXE
   _remove_ref();
   if(!CORBA::is_nil(_orb))
     _orb->shutdown(0);
@@ -356,7 +358,7 @@ ${body}
   catch (...)
     {
       std::cerr << "unknown exception" << std::endl;
-#if ${exe}
+#if BUILD_EXE
       _exit(-1);
 #endif
       //cp_fin(component,CP_ARRET);
index 709b680da0a6aa2bb16b6a6fc4ddcd886e135e14..e4934c8b5685cc982189cd8fd702110c1ac8170f 100644 (file)
@@ -123,7 +123,11 @@ class CPPComponent(Component):
     (cmake_text, cmake_vars) = self.additionalLibraries()
     cxxfile = "%s.cxx" % self.name
     hxxfile = "%s.hxx" % self.name
-    ret = { cxxfile:self.makecxx(gen),
+    if self.kind == "exe":
+      exe_opt = 1
+    else:
+      exe_opt = 0
+    ret = { cxxfile:self.makecxx(gen, exe_opt),
             hxxfile:self.makehxx(gen)
           }
     sources = " ".join(map(os.path.basename,self.sources))
@@ -146,7 +150,6 @@ class CPPComponent(Component):
     ret["CMakeLists.txt"] = cmakelist_content
     
     return ret
-    
 
   def makehxx(self, gen):
     """return a string that is the content of .hxx file