From a979a7c8aa058e25c3de2b6a014df12241e54c5e Mon Sep 17 00:00:00 2001 From: Jeff Trawick Date: Thu, 21 Mar 2002 16:18:11 +0000 Subject: [PATCH] document a glitch that prevents complete graceful termination of the process when one of the threads encounters a critical error git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@94094 13f79535-47bb-0310-9956-ffa450edef68 --- server/mpm/worker/worker.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/server/mpm/worker/worker.c b/server/mpm/worker/worker.c index b57d1139d1..ac907022fd 100644 --- a/server/mpm/worker/worker.c +++ b/server/mpm/worker/worker.c @@ -1138,6 +1138,10 @@ static void child_main(int child_num_arg) /* make sure the start thread has finished; signal_workers() * and join_workers() depend on that */ + /* XXX join_start_thread() won't be awakened if one of our + * threads encounters a critical error and attempts to + * shutdown this child + */ join_start_thread(start_thread_id); signal_workers(); /* helps us terminate a little more quickly when * the dispatch of the signal thread @@ -1155,6 +1159,10 @@ static void child_main(int child_num_arg) else { /* !one_process */ /* Watch for any messages from the parent over the POD */ while (1) { + /* XXX join_start_thread() won't be awakened if one of our + * threads encounters a critical error and attempts to + * shutdown this child + */ rv = ap_mpm_pod_check(pod); if (rv == AP_GRACEFUL || rv == AP_RESTART) { /* make sure the start thread has finished; -- 2.50.1