At 09:00 PM 11/20/2003, Jeff Trawick wrote:
>William A. Rowe, Jr. wrote:
>
>>We need to axe or decorate the symbol NO_USE_SIGACTION in our
>>ongoing effort to prevent namespace clashes.
>
>sounds good
>
>>We do have a flag APR_HAVE_SIGACTION which is tested and
>>configured for, and the attached patch to the Apache MPMs presumes that this was the 
>>intent of APR_HAVE_SIGACTION.
>
>can you take a look at that patch, Bill?  (hint, save to disk first, then edit :) )

ROFL :-)

>>But it will enable all platforms to use the (likely untested) sigaction
>> code in the various MPMs.
>
>but we're using the sigaction code now...  what platforms besides windows actually 
>have NO_USE_SIGACTION defined?

Bah - was looking at apr.h not apr.h.in.  You are correct.

>>code in the various MPMs.  If we are choosing on *Apache's* behalf
>>to use (or not use) sigaction, then this flag, or it's newly renamed
>>cousin, needs to be an apache conf variable and disappear altogether
>>from APR.
>>Comments please from those who know the sigaction code?
>
>I think everybody will end up using the same exact code, but the preprocessor check 
>will be nicer.

Well here's the patch... enjoy

Bill 
Index: server/mpm_common.c
===================================================================
RCS file: /home/cvs/httpd-2.0/server/mpm_common.c,v
retrieving revision 1.108
diff -u -r1.108 mpm_common.c
--- server/mpm_common.c 3 Sep 2003 19:27:09 -0000       1.108
+++ server/mpm_common.c 20 Nov 2003 17:57:55 -0000
@@ -953,7 +953,7 @@
 
 apr_status_t ap_fatal_signal_setup(server_rec *s, apr_pool_t *in_pconf)
 {
-#ifndef NO_USE_SIGACTION
+#if APR_HAVE_SIGACTION
     struct sigaction sa;
 
     sigemptyset(&sa.sa_mask);
@@ -986,7 +986,7 @@
         ap_log_error(APLOG_MARK, APLOG_WARNING, errno, s, "sigaction(SIGILL)");
 #endif
 
-#else /* NO_USE_SIGACTION */
+#else /* !APR_HAVE_SIGACTION */
     
     apr_signal(SIGSEGV, sig_coredump);
 #ifdef SIGBUS
@@ -1002,7 +1002,7 @@
     apr_signal(SIGILL, sig_coredump);
 #endif /* SIGILL */
 
-#endif /* NO_USE_SIGACTION */
+#endif /* !APR_HAVE_SIGACTION */
 
     pconf = in_pconf;
     parent_pid = my_pid = getpid();
Index: server/mpm/experimental/leader/leader.c
===================================================================
RCS file: /home/cvs/httpd-2.0/server/mpm/experimental/leader/leader.c,v
retrieving revision 1.32
diff -u -r1.32 leader.c
--- server/mpm/experimental/leader/leader.c     16 Nov 2003 01:51:27 -0000      1.32
+++ server/mpm/experimental/leader/leader.c     20 Nov 2003 17:57:56 -0000
@@ -535,7 +535,7 @@
 
 static void set_signals(void)
 {
-#ifndef NO_USE_SIGACTION
+#if APR_HAVE_SIGACTION
     struct sigaction sa;
 #endif
 
@@ -543,7 +543,7 @@
         ap_fatal_signal_setup(ap_server_conf, pconf);
     }
 
-#ifndef NO_USE_SIGACTION
+#if APR_HAVE_SIGACTION
     sigemptyset(&sa.sa_mask);
     sa.sa_flags = 0;
 
Index: server/mpm/experimental/perchild/perchild.c
===================================================================
RCS file: /home/cvs/httpd-2.0/server/mpm/experimental/perchild/perchild.c,v
retrieving revision 1.140
diff -u -r1.140 perchild.c
--- server/mpm/experimental/perchild/perchild.c 3 Sep 2003 19:27:11 -0000       1.140
+++ server/mpm/experimental/perchild/perchild.c 20 Nov 2003 17:57:57 -0000
@@ -401,7 +401,7 @@
 
 static void set_signals(void)
 {
-#ifndef NO_USE_SIGACTION
+#if APR_HAVE_SIGACTION
     struct sigaction sa;
 #endif
 
@@ -409,7 +409,7 @@
         ap_fatal_signal_setup(ap_server_conf, pconf);
     }
 
-#ifndef NO_USE_SIGACTION
+#if APR_HAVE_SIGACTION
     sigemptyset(&sa.sa_mask);
     sa.sa_flags = 0;
 
Index: server/mpm/experimental/threadpool/threadpool.c
===================================================================
RCS file: /home/cvs/httpd-2.0/server/mpm/experimental/threadpool/threadpool.c,v
retrieving revision 1.20
diff -u -r1.20 threadpool.c
--- server/mpm/experimental/threadpool/threadpool.c     5 Sep 2003 19:36:26 -0000      
 1.20
+++ server/mpm/experimental/threadpool/threadpool.c     20 Nov 2003 17:57:58 -0000
@@ -606,7 +606,7 @@
 
 static void set_signals(void)
 {
-#ifndef NO_USE_SIGACTION
+#if APR_HAVE_SIGACTION
     struct sigaction sa;
 #endif
 
@@ -614,7 +614,7 @@
         ap_fatal_signal_setup(ap_server_conf, pconf);
     }
 
-#ifndef NO_USE_SIGACTION
+#if APR_HAVE_SIGACTION
     sigemptyset(&sa.sa_mask);
     sa.sa_flags = 0;
 
Index: server/mpm/prefork/prefork.c
===================================================================
RCS file: /home/cvs/httpd-2.0/server/mpm/prefork/prefork.c,v
retrieving revision 1.282
diff -u -r1.282 prefork.c
--- server/mpm/prefork/prefork.c        16 Nov 2003 23:03:18 -0000      1.282
+++ server/mpm/prefork/prefork.c        20 Nov 2003 17:57:59 -0000
@@ -400,7 +400,7 @@
 
 static void set_signals(void)
 {
-#ifndef NO_USE_SIGACTION
+#if APR_HAVE_SIGACTION
     struct sigaction sa;
 #endif
 
@@ -408,7 +408,7 @@
         ap_fatal_signal_setup(ap_server_conf, pconf);
     }
 
-#ifndef NO_USE_SIGACTION
+#if APR_HAVE_SIGACTION
     sigemptyset(&sa.sa_mask);
     sa.sa_flags = 0;
 
Index: server/mpm/worker/worker.c
===================================================================
RCS file: /home/cvs/httpd-2.0/server/mpm/worker/worker.c,v
retrieving revision 1.140
diff -u -r1.140 worker.c
--- server/mpm/worker/worker.c  16 Nov 2003 23:47:07 -0000      1.140
+++ server/mpm/worker/worker.c  20 Nov 2003 17:58:00 -0000
@@ -445,7 +445,7 @@
 
 static void set_signals(void)
 {
-#ifndef NO_USE_SIGACTION
+#if APR_HAVE_SIGACTION
     struct sigaction sa;
 #endif
 
@@ -453,7 +453,7 @@
         ap_fatal_signal_setup(ap_server_conf, pconf);
     }
 
-#ifndef NO_USE_SIGACTION
+#if APR_HAVE_SIGACTION
     sigemptyset(&sa.sa_mask);
     sa.sa_flags = 0;
 
Index: STATUS
===================================================================
RCS file: /home/cvs/apr/STATUS,v
retrieving revision 1.194
diff -u -r1.194 STATUS
--- STATUS      17 Nov 2003 09:56:46 -0000      1.194
+++ STATUS      21 Nov 2003 03:30:24 -0000
@@ -34,7 +34,6 @@
       Some headers with issues: 
         apr.hnw               (READDIR_IS_THREAD_SAFE, ENUM_BITFIELD, 
                               _POSIX_THREAD_SAFE_FUNCTIONS (?))
-        apr.hw                (NO_USE_SIGACTION)
 
 
     * Flush out the test suite and make sure it passes on all platforms.  
@@ -44,9 +43,10 @@
       unified test suite, and adding more tests to make the suite 
       comprehensive.
 
-    * close out the XXX's already!  (wrowe: this is "production release" 
-      quality code with that many unanswered questions?)  If they aren't
-      showstoppers, deprecate them to TODO:s.
+    * Eliminate the TODO's and XXX's by using the doxygen @bug feature
+      to allow us to better track the open issues, and provide historical
+      bug lists that help porters understand what was wrong in the old
+      versions of APR that they would be upgrading from.
 
 
 CURRENT VOTES:
Index: include/apr.hw
===================================================================
RCS file: /home/cvs/apr/include/apr.hw,v
retrieving revision 1.120
diff -u -r1.120 apr.hw
--- include/apr.hw      17 Nov 2003 00:28:25 -0000      1.120
+++ include/apr.hw      21 Nov 2003 03:30:24 -0000
@@ -143,8 +143,6 @@
 #define __attribute__(__x)
 #endif
 
-#define NO_USE_SIGACTION
-
 #ifndef _WIN32_WCE
 #define APR_HAVE_ARPA_INET_H    0
 #define APR_HAVE_CONIO_H        1

Reply via email to