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