From: Jeff Trawick Date: Thu, 21 Mar 2002 16:18:11 +0000 (+0000) Subject: document a glitch that prevents complete graceful termination of the X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a979a7c8aa058e25c3de2b6a014df12241e54c5e;p=apache 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 --- 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;