Hello, On Tue, Jun 2, 2015 at 9:15 PM, Jacob Champion <jacob.champ...@ni.com> wrote: > > We could just call apr_setup_signal_thread() ourselves -- and doing that > does fix the problem -- but that means that modules which are > initialized after us will get the global protection too, which doesn't > feel clean. So, a few questions: > > 1) Is creating a new thread during the child_init hook the correct way > to ensure that each child process gets its own background thread?
I would say yes, currently, with the existing hooks (run by the children processes)... > > 2) If so, is it intended behavior that Apache calls > apr_setup_signal_thread() after the child_init hook, instead of before it? I don't know if it's intended, but that's the current behaviour. Maybe a new hook is needed after apr_setup_signal_thread(), that would not be a huge change (backportable/acceptable IMHO). A workaround today is (as you did) to use the child_init hook registered with APR_HOOK_REALLY_LAST, so that it is called after all the others. Since the hook will also be called just before apr_setup_signal_thread(), and the latter can be called multiple times, it should work without causing any issue. Regards, Yann.