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);
*/
#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)
{
|| 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;