summaryrefslogtreecommitdiffstats
path: root/modules/http
diff options
context:
space:
mode:
authorPaul Querna <pquerna@apache.org>2008-04-07 11:53:58 +0200
committerPaul Querna <pquerna@apache.org>2008-04-07 11:53:58 +0200
commit064a1ffbff2a66fcc1c9c4260571a276cebbc526 (patch)
tree2959a591f361cc2a3a2ac9040fa02d681bf0effa /modules/http
parentInclude http_config.h from http_core, since now without CORE_PRIVATE, you need (diff)
downloadapache2-064a1ffbff2a66fcc1c9c4260571a276cebbc526.tar.xz
apache2-064a1ffbff2a66fcc1c9c4260571a276cebbc526.zip
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. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@645434 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'modules/http')
-rw-r--r--modules/http/http_core.c8
-rw-r--r--modules/http/http_protocol.c17
2 files changed, 23 insertions, 2 deletions
diff --git a/modules/http/http_core.c b/modules/http/http_core.c
index b4cafaf435..faf47b671e 100644
--- a/modules/http/http_core.c
+++ b/modules/http/http_core.c
@@ -221,8 +221,14 @@ static int ap_process_http_connection(conn_rec *c)
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);
diff --git a/modules/http/http_protocol.c b/modules/http/http_protocol.c
index 87f3f3079a..d50353c50f 100644
--- a/modules/http/http_protocol.c
+++ b/modules/http/http_protocol.c
@@ -158,6 +158,21 @@ AP_IMPLEMENT_HOOK_VOID(insert_error_filter, (request_rec *r), (r))
*/
#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 @@ AP_DECLARE(int) ap_set_keepalive(request_rec *r)
|| 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;