[Uludag-commits] r24668 - trunk/comar/comar/src

uludag-commits at pardus.org.tr uludag-commits at pardus.org.tr
10 Tem 2009 Cum 11:02:31 EEST


Author: bahadir.kandemir
Date: Fri Jul 10 11:02:31 2009
New Revision: 24668

Modified:
   trunk/comar/comar/src/process.c
Log:
Handle signals

Modified: trunk/comar/comar/src/process.c
=================================================================
--- trunk/comar/comar/src/process.c	(original)
+++ trunk/comar/comar/src/process.c	Fri Jul 10 11:02:31 2009
@@ -98,6 +98,36 @@
     exit(0);
 }
 
+static void
+handle_sigterm(int signum)
+{
+}
+
+void
+handle_signals(void)
+{
+    struct sigaction act;
+    struct sigaction ign;
+    struct sigaction dfl;
+
+    act.sa_handler = handle_sigterm;
+    /*! initialize and empty a signal set. Signals are to be blocked while executing handle_sigterm */
+    sigemptyset(&act.sa_mask);
+    act.sa_flags = 0; /*!< special flags */
+
+    ign.sa_handler = SIG_IGN;
+    sigemptyset(&ign.sa_mask);
+    ign.sa_flags = 0;
+
+    dfl.sa_handler = SIG_DFL;
+    sigemptyset(&dfl.sa_mask);
+    dfl.sa_flags = 0;
+
+    sigaction(SIGTERM, &act, NULL);
+    sigaction(SIGPIPE, &ign, NULL);
+    sigaction(SIGINT, &dfl, NULL);
+}
+
 struct ProcChild *
 proc_fork(void (*child_func)(DBusMessage *msg), DBusMessage *msg)
 {
@@ -121,6 +151,8 @@
 
         my_proc.bus_msg = msg;
 
+        handle_signals();
+
         child_func(msg);
         close(pfd[0]);
         proc_finish();


Uludag-commits mesaj listesiyle ilgili daha fazla bilgi