You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by pq...@apache.org on 2008/04/07 11:54:00 UTC

svn commit: r645434 - in /httpd/httpd/trunk/modules/http: http_core.c http_protocol.c

Author: pquerna
Date: Mon Apr  7 02:53:58 2008
New Revision: 645434

URL: http://svn.apache.org/viewvc?rev=645434&view=rev
Log:
Remove calls to ap_graceful_stop_signalled, and replace by using ap_mpm_query
to determine if the MPM is trying to stop the process.

Modified:
    httpd/httpd/trunk/modules/http/http_core.c
    httpd/httpd/trunk/modules/http/http_protocol.c

Modified: httpd/httpd/trunk/modules/http/http_core.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/http/http_core.c?rev=645434&r1=645433&r2=645434&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/http/http_core.c (original)
+++ httpd/httpd/trunk/modules/http/http_core.c Mon Apr  7 02:53:58 2008
@@ -221,8 +221,14 @@
 
         ap_update_child_status(c->sbh, SERVER_BUSY_KEEPALIVE, NULL);
 
-        if (ap_graceful_stop_signalled())
+        int mpm_state = 0;
+        if (ap_mpm_query(AP_MPMQ_MPM_STATE, &mpm_state)) {
             break;
+        }
+
+        if (mpm_state == AP_MPMQ_STOPPING) {
+          break;
+        }
 
         if (!csd) {
             csd = ap_get_module_config(c->conn_config, &core_module);

Modified: httpd/httpd/trunk/modules/http/http_protocol.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/http/http_protocol.c?rev=645434&r1=645433&r2=645434&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/http/http_protocol.c (original)
+++ httpd/httpd/trunk/modules/http/http_protocol.c Mon Apr  7 02:53:58 2008
@@ -158,6 +158,21 @@
  */
 #define METHOD_NUMBER_LAST  62
 
+static int is_mpm_running()
+{
+    int mpm_state = 0;
+
+    if (ap_mpm_query(AP_MPMQ_MPM_STATE, &mpm_state)) {
+      return 0;
+    }
+  
+    if (mpm_state == AP_MPMQ_STOPPING) {
+      return 0;
+    }
+
+    return 1;
+}
+
 
 AP_DECLARE(int) ap_set_keepalive(request_rec *r)
 {
@@ -215,7 +230,7 @@
             || apr_table_get(r->headers_in, "Via"))
         && ((ka_sent = ap_find_token(r->pool, conn, "keep-alive"))
             || (r->proto_num >= HTTP_VERSION(1,1)))
-        && !ap_graceful_stop_signalled()) {
+        && is_mpm_running()) {
         int left = r->server->keep_alive_max - r->connection->keepalives;
 
         r->connection->keepalive = AP_CONN_KEEPALIVE;