Is there a chunk of dead code below this change or am I misreading?

https://svn.apache.org/viewvc/httpd/httpd/trunk/server/mpm/event/event.c?revision=1916241&view=markup&pathrev=1916241#l2758

The first thread creation failure results in clean_child_exit(), so
what's all this about starting the listener as long as we have some
workers or AH03271 stuff about not taking over slots quickly?

On Mon, Mar 11, 2024 at 4:36 PM <cove...@apache.org> wrote:
>
> Author: covener
> Date: Mon Mar 11 20:35:27 2024
> New Revision: 1916241
>
> URL: http://svn.apache.org/viewvc?rev=1916241&view=rev
> Log:
> event: avoid possible hang in clean_child_exit
>
> If the pthread_create failure isn't on the first worker thread,
> another one is likely to hold the queue mutex already. The cleanup
> of pchild will try to cleanup the queue and block on destroying
> the condition.
>
> ST_UNGRACEFUL as we have no listener thread yet.
>
>
> Modified:
>     httpd/httpd/trunk/server/mpm/event/event.c
>
> Modified: httpd/httpd/trunk/server/mpm/event/event.c
> URL: 
> http://svn.apache.org/viewvc/httpd/httpd/trunk/server/mpm/event/event.c?rev=1916241&r1=1916240&r2=1916241&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/server/mpm/event/event.c (original)
> +++ httpd/httpd/trunk/server/mpm/event/event.c Mon Mar 11 20:35:27 2024
> @@ -2749,6 +2749,7 @@ static void *APR_THREAD_FUNC start_threa
>                               APLOGNO(03104)
>                               "ap_thread_create: unable to create worker 
> thread");
>                  /* let the parent decide how bad this really is */
> +                signal_threads(ST_UNGRACEFUL);
>                  clean_child_exit(APEXIT_CHILDSICK);
>              }
>              threads_created++;
>
>


-- 
Eric Covener
cove...@gmail.com

Reply via email to