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 2008/05/31 13:58:46 UTC

svn commit: r662014 - in /httpd/httpd/branches/2.2.x: STATUS server/mpm/prefork/prefork.c

Author: jim
Date: Sat May 31 04:58:46 2008
New Revision: 662014

URL: http://svn.apache.org/viewvc?rev=662014&view=rev
Log:
Merge r613260 from trunk:

* server/mpm/prefork/prefork.c (child_main): If apr_pollset_poll()
  fails with EINTR and die_now has been set (indicating a graceful
  stop/restart), terminate the child quickly rather than re-entering
  poll().

Submitted by: jorton
Reviewed by: jim

Modified:
    httpd/httpd/branches/2.2.x/STATUS
    httpd/httpd/branches/2.2.x/server/mpm/prefork/prefork.c

Modified: httpd/httpd/branches/2.2.x/STATUS
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/STATUS?rev=662014&r1=662013&r2=662014&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x/STATUS (original)
+++ httpd/httpd/branches/2.2.x/STATUS Sat May 31 04:58:46 2008
@@ -90,22 +90,6 @@
 PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
   [ start all new proposals below, under PATCHES PROPOSED. ]
 
- * prefork: prefork's apr_pollset_poll() loop-on-EINTR loop was not checking
-  die_now; the child holding the mutex will not die immediately if poll
-  fails with EINTR, and will hence appear to "hang" until a new connection
-  is recevied.
-   Trunk version of patch:
-         http://svn.apache.org/viewvc?view=rev&revision=613260
-   Backport version for 2.2.x of patch:
-         Trunk version of patch works
-    +1: jim, jorton, rpluem
-
- * prefork: Unlock mutex before terminating.
-   Trunk version of patch:
-         http://svn.apache.org/viewvc?view=rev&revision=613252
-   Backport version for 2.2.x of patch:
-         Trunk version of patch works
-    +1: jim, jorton, rpluem
 
 PATCHES PROPOSED TO BACKPORT FROM TRUNK:
   [ New proposals should be added at the end of the list ]

Modified: httpd/httpd/branches/2.2.x/server/mpm/prefork/prefork.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/server/mpm/prefork/prefork.c?rev=662014&r1=662013&r2=662014&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x/server/mpm/prefork/prefork.c (original)
+++ httpd/httpd/branches/2.2.x/server/mpm/prefork/prefork.c Sat May 31 04:58:46 2008
@@ -580,6 +580,12 @@
                         if (one_process && shutdown_pending) {
                             return;
                         }
+                        else if (die_now) {
+                            /* In graceful stop/restart; drop the mutex
+                             * and terminate the child. */
+                            SAFE_ACCEPT(accept_mutex_off());
+                            clean_child_exit(0);
+                        }
                         continue;
                     }
                     /* Single Unix documents select as returning errnos