You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by ji...@apache.org on 2002/04/22 20:23:20 UTC
cvs commit: apache-1.3/src/main http_main.c
jim 02/04/22 11:23:20
Modified: src CHANGES
src/main http_main.c
Log:
Allow child processes sufficient time for cleanups but making
ap_select in reclaim_child_processes more "resistant" to
signal interupts.
PR: Bugz 8176
Submitted by: David Winterbourne <da...@financenter.com>
Reviewed by: Jim Jagielski, Bill Rowe
Revision Changes Path
1.1814 +5 -0 apache-1.3/src/CHANGES
Index: CHANGES
===================================================================
RCS file: /home/cvs/apache-1.3/src/CHANGES,v
retrieving revision 1.1813
retrieving revision 1.1814
diff -u -r1.1813 -r1.1814
--- CHANGES 22 Apr 2002 17:41:34 -0000 1.1813
+++ CHANGES 22 Apr 2002 18:23:19 -0000 1.1814
@@ -1,5 +1,10 @@
Changes with Apache 1.3.25
+ *) Allow child processes sufficient time for cleanups but making
+ ap_select in reclaim_child_processes more "resistant" to
+ signal interupts. Bugz# 8176
+ [David Winterbourne <da...@financenter.com>, Jim Jagielski]
+
*) Recognize platform specific root directories (other than
leading slash) in mod_rewrite for filename rewrite rules.
Bugz# 7492 [William Rowe]
1.580 +6 -2 apache-1.3/src/main/http_main.c
Index: http_main.c
===================================================================
RCS file: /home/cvs/apache-1.3/src/main/http_main.c,v
retrieving revision 1.579
retrieving revision 1.580
diff -u -r1.579 -r1.580
--- http_main.c 13 Mar 2002 21:05:30 -0000 1.579
+++ http_main.c 22 Apr 2002 18:23:19 -0000 1.580
@@ -2726,6 +2726,7 @@
struct timeval tv;
int waitret, tries;
int not_dead_yet;
+ int ret;
#ifndef NO_OTHER_CHILD
other_child_rec *ocr, *nocr;
#endif
@@ -2735,12 +2736,15 @@
for (tries = terminate ? 4 : 1; tries <= 12; ++tries) {
/* don't want to hold up progress any more than
* necessary, but we need to allow children a few moments to exit.
- * Set delay with an exponential backoff.
+ * Set delay with an exponential backoff. NOTE: if we get
+ * interupted, we'll wait longer than expected...
*/
tv.tv_sec = waittime / 1000000;
tv.tv_usec = waittime % 1000000;
waittime = waittime * 4;
- ap_select(0, NULL, NULL, NULL, &tv);
+ do {
+ ret = ap_select(0, NULL, NULL, NULL, &tv);
+ } while (ret == -1 && errno == EINTR);
/* now see who is done */
not_dead_yet = 0;