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;