summaryrefslogtreecommitdiff
blob: a32999535ef0ff57b3cd2b4f944acb52600c0276 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
diff -uNr apache_1.3.28.orig/src/main/alloc.c apache_1.3.28/src/main/alloc.c
--- apache_1.3.28.orig/src/main/alloc.c	2003-06-20 11:05:40.000000000 -0400
+++ apache_1.3.28/src/main/alloc.c	2003-09-26 23:48:14.000000000 -0400
@@ -2858,13 +2858,14 @@
     for (p = procs; p; p = p->next) {
 	if ((p->kill_how == kill_after_timeout)
 	    || (p->kill_how == kill_only_once)) {
-	    /* Subprocess may be dead already.  Only need the timeout if not. */
-	    if (ap_os_kill(p->pid, SIGTERM) == -1) {
-                p->kill_how = kill_never;
-            }
-            else {
-		need_timeout = 1;
-            }
+	    /*
+	     * This is totally bogus, but seems to be the
+	     * only portable (as in reliable) way to accomplish
+	     * this. Note that this implies an unavoidable
+	     * delay.
+	     */
+	    ap_os_kill(p->pid, SIGTERM);
+	    need_timeout = 1;
 	}
 	else if (p->kill_how == kill_always) {
 	    kill(p->pid, SIGKILL);