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 <davidw@financenter.com>, Jim Jagielski]
+
*) Recognize platform specific root directories (other than
leading slash) in mod_rewrite for filename rewrite rules.
Bugz# 7492 [William Rowe]
struct timeval tv;
int waitret, tries;
int not_dead_yet;
+ int ret;
#ifndef NO_OTHER_CHILD
other_child_rec *ocr, *nocr;
#endif
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;