certi-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[certi-cvs] certi/RTIA RTIA.cc FederationManagement.cc Fede...


From: certi-cvs
Subject: [certi-cvs] certi/RTIA RTIA.cc FederationManagement.cc Fede...
Date: Sun, 11 Oct 2009 11:22:56 +0000

CVSROOT:        /sources/certi
Module name:    certi
Changes by:     Eric NOULARD <erk>      09/10/11 11:22:56

Modified files:
        RTIA           : RTIA.cc FederationManagement.cc 
                         FederationManagement.hh 

Log message:
        Merge-in
        patch #6937: Fix crash on exit of rtia
        Added FIXME comment for the record.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/RTIA.cc?cvsroot=certi&r1=3.27&r2=3.28
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/FederationManagement.cc?cvsroot=certi&r1=3.73&r2=3.74
http://cvs.savannah.gnu.org/viewcvs/certi/RTIA/FederationManagement.hh?cvsroot=certi&r1=3.24&r2=3.25

Patches:
Index: RTIA.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/RTIA.cc,v
retrieving revision 3.27
retrieving revision 3.28
diff -u -b -r3.27 -r3.28
--- RTIA.cc     21 Sep 2009 15:42:11 -0000      3.27
+++ RTIA.cc     11 Oct 2009 11:22:55 -0000      3.28
@@ -18,7 +18,7 @@
 // along with this program ; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 //
-// $Id: RTIA.cc,v 3.27 2009/09/21 15:42:11 erk Exp $
+// $Id: RTIA.cc,v 3.28 2009/10/11 11:22:55 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -75,6 +75,13 @@
            }
         }
      
+    /* 
+     * FIXME Erk
+     * this is may be a design issue
+     * see  https://savannah.nongnu.org/patch/?6937
+     */
+    fm->resignFederationExecutionForTermination();
+     
      /* delete objects in reverse order just like generated destructor would 
have done */
     delete ddm ;
     delete tm ;
@@ -187,4 +194,4 @@
 
 }} // namespace certi/rtia
 
-// $Id: RTIA.cc,v 3.27 2009/09/21 15:42:11 erk Exp $
+// $Id: RTIA.cc,v 3.28 2009/10/11 11:22:55 erk Exp $

Index: FederationManagement.cc
===================================================================
RCS file: /sources/certi/certi/RTIA/FederationManagement.cc,v
retrieving revision 3.73
retrieving revision 3.74
diff -u -b -r3.73 -r3.74
--- FederationManagement.cc     21 Sep 2009 15:42:11 -0000      3.73
+++ FederationManagement.cc     11 Oct 2009 11:22:55 -0000      3.74
@@ -18,7 +18,7 @@
 // along with this program ; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 //
-// $Id: FederationManagement.cc,v 3.73 2009/09/21 15:42:11 erk Exp $
+// $Id: FederationManagement.cc,v 3.74 2009/10/11 11:22:55 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
@@ -78,13 +78,8 @@
 //! Destructor.
 FederationManagement::~FederationManagement()
 {
-    TypeException e ;
     G.Out(pdGendoc,"enter ~FederationManagement");
 
-    if (_est_membre_federation) {
-        resignFederationExecution(RTI::DELETE_OBJECTS, e);
-    }
-
     // BUG: On devrait pouvoir quitter une federation que l'on a cree
     // sans la detruire en partant.
     // a-t-on avertit les autres federes de notre depart et donc
@@ -478,6 +473,20 @@
         }
 }
 
+// Resigns if we are still member, call this before we throw away all the rtia 
members
+void
+FederationManagement::resignFederationExecutionForTermination()
+{
+    G.Out(pdGendoc,"enter 
FederationManagement::resignFederationExecutionForTermination");
+
+    if (_est_membre_federation) {
+        TypeException e ;
+        resignFederationExecution(RTI::DELETE_OBJECTS, e);
+    }
+
+    G.Out(pdGendoc,"exit  
FederationManagement::resignFederationExecutionForTermination");
+}
+
 // ----------------------------------------------------------------------------
 //! Register synchronization.
 void

Index: FederationManagement.hh
===================================================================
RCS file: /sources/certi/certi/RTIA/FederationManagement.hh,v
retrieving revision 3.24
retrieving revision 3.25
diff -u -b -r3.24 -r3.25
--- FederationManagement.hh     10 Jun 2008 13:41:44 -0000      3.24
+++ FederationManagement.hh     11 Oct 2009 11:22:55 -0000      3.25
@@ -18,7 +18,7 @@
 // along with this program ; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 //
-// $Id: FederationManagement.hh,v 3.24 2008/06/10 13:41:44 rousse Exp $
+// $Id: FederationManagement.hh,v 3.25 2009/10/11 11:22:55 erk Exp $
 // ----------------------------------------------------------------------------
 
 #ifndef _CERTI_RTIA_FEDERATION_MANAGEMENT
@@ -57,6 +57,7 @@
 
     void resignFederationExecution(RTI::ResignAction action,
                                    TypeException &e);
+    void resignFederationExecutionForTermination();
 
     // Synchronization.
     void registerSynchronization(std::string label,
@@ -123,4 +124,4 @@
 
 #endif // _CERTI_RTIA_FEDERATION_MANAGEMENT
 
-// $Id: FederationManagement.hh,v 3.24 2008/06/10 13:41:44 rousse Exp $
+// $Id: FederationManagement.hh,v 3.25 2009/10/11 11:22:55 erk Exp $




reply via email to

[Prev in Thread] Current Thread [Next in Thread]