certi-cvs
[Top][All Lists]
Advanced

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

[certi-cvs] certi/libRTI RTIambassador.cc


From: certi-cvs
Subject: [certi-cvs] certi/libRTI RTIambassador.cc
Date: Thu, 18 Sep 2008 14:47:33 +0000

CVSROOT:        /sources/certi
Module name:    certi
Changes by:     Petr Gotthard <gotthardp>       08/09/18 14:47:33

Modified files:
        libRTI         : RTIambassador.cc 

Log message:
        BUGFIX: Mask SIGINT sent to RTIA; first part of solution for bug #24279.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/libRTI/RTIambassador.cc?cvsroot=certi&r1=3.91&r2=3.92

Patches:
Index: RTIambassador.cc
===================================================================
RCS file: /sources/certi/certi/libRTI/RTIambassador.cc,v
retrieving revision 3.91
retrieving revision 3.92
diff -u -b -r3.91 -r3.92
--- RTIambassador.cc    10 Jul 2008 20:20:08 -0000      3.91
+++ RTIambassador.cc    18 Sep 2008 14:47:33 -0000      3.92
@@ -19,7 +19,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: RTIambassador.cc,v 3.91 2008/07/10 20:20:08 approx Exp $
+// $Id: RTIambassador.cc,v 3.92 2008/09/18 14:47:33 gotthardp Exp $
 // ----------------------------------------------------------------------------
 
 
@@ -146,6 +146,13 @@
   sleep(1);
   privateRefs->socketUn->connectUN(privateRefs->pid_RTIA);
 #else
+    sigset_t nset, oset;
+    // temporarily block termination signals
+    // note: this is to prevent child processes from receiving termination 
signals
+    sigemptyset(&nset);
+    sigaddset(&nset, SIGINT);
+    sigprocmask(SIG_BLOCK, &nset, &oset);
+
     switch((privateRefs->pid_RTIA = fork())) {
       case -1: // fork failed.
         perror("fork");
@@ -176,6 +183,9 @@
         };
         break ;
     }
+
+    // unbock the above blocked signals
+    sigprocmask(SIG_SETMASK, &oset, NULL);
 #endif
     G.Out(pdGendoc,"exit  RTIambassador::RTIambassador");
 }
@@ -3017,4 +3027,4 @@
     privateRefs->executeService(&req, &rep);
 }
 
-// $Id: RTIambassador.cc,v 3.91 2008/07/10 20:20:08 approx Exp $
+// $Id: RTIambassador.cc,v 3.92 2008/09/18 14:47:33 gotthardp Exp $




reply via email to

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