New PHP5 APC - version 3.0.18, using PHP5 5.2.0-8+etch10,
[php5-apc.git] / apc_signal.c
index 406fc47..32627a3 100644 (file)
@@ -24,7 +24,7 @@
    All other licensing and usage conditions are those of the PHP Group.
  */
 
- /* $Id: apc_signal.c,v 1.2 2007/12/26 22:38:43 rasmus Exp $ */
+ /* $Id: apc_signal.c,v 1.2.2.2 2008/03/25 18:24:57 gopalv Exp $ */
 
  /* Allows apc to install signal handlers and maintain signalling
     to already registered handlers. Registers all signals that
@@ -88,7 +88,7 @@ static void apc_rehandle_signal(int signo, siginfo_t *siginfo, void *context)
 static int apc_register_signal(int signo, void (*handler)(int, siginfo_t*, void*))
 {
 #if HAVE_SIGACTION
-    struct sigaction sa = {0};
+    struct sigaction sa = {{0}};
     apc_signal_entry_t p_sig = {0};
 
     if (sigaction(signo, NULL, &sa) == 0) {
@@ -168,6 +168,20 @@ void apc_set_signals(TSRMLS_D)
     }
 } /* }}} */
 
+/* {{{ apc_set_signals
+ *  cleanup signals for shutdown */
+void apc_shutdown_signals() 
+{
+    int i=0;
+    if (apc_signal_info.installed > 0) {
+        for (i=0;  (i < apc_signal_info.installed);  i++) {
+            apc_efree(apc_signal_info.prev[i]);
+        }
+        apc_efree(apc_signal_info.prev);
+        apc_signal_info.installed = 0; /* just in case */
+    }
+}
+
 /*
  * Local variables:
  * tab-width: 4