diff options
Diffstat (limited to '')
-rw-r--r-- | server/connection.c | 2 | ||||
-rw-r--r-- | server/scoreboard.c | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/server/connection.c b/server/connection.c index 3f706a5e24..70f9fc29ba 100644 --- a/server/connection.c +++ b/server/connection.c @@ -157,6 +157,8 @@ void ap_lingering_close(conn_rec *c) apr_int32_t timeout; apr_int32_t total_linger_time = 0; + ap_update_child_status(AP_CHILD_THREAD_FROM_ID(c->id), SERVER_CLOSING, NULL); + #ifdef NO_LINGCLOSE ap_flush_conn(c); /* just close it */ apr_socket_close(c->client_socket); diff --git a/server/scoreboard.c b/server/scoreboard.c index a6237f9235..d9398a4a4f 100644 --- a/server/scoreboard.c +++ b/server/scoreboard.c @@ -279,7 +279,7 @@ int ap_update_child_status(int child_num, int thread_num, int status, request_re ps = &ap_scoreboard_image->parent[child_num]; - if ((status == SERVER_READY || status == SERVER_ACCEPTING) + if (status == SERVER_READY && old_status == SERVER_STARTING) { ws->thread_num = child_num * HARD_SERVER_LIMIT + thread_num; ps->generation = ap_my_generation; |