This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 3/3] Refactor atfork handlers


On 02/20/2018 02:48 PM, Adhemerval Zanella wrote:

The atfork_run_prepare will instruct __run_fork_handlers to take the internal
atfork_lock handler:

   void
   __run_fork_handlers (enum __run_fork_handler_type who)
   {
     struct fork_handler *runp;

     if (who == atfork_run_prepare)
       {
         lll_lock (atfork_lock, LLL_PRIVATE);

And it will prevent to add new registration until either the parent or the child
call __run_fork_handlers with either 'atfork_run_child' or 'atfork_run_parent'
to release the lock.

Oh, sorry, I missed that. So the patch does not have this problem. This does not settle the deadlock issue, though.

Thanks,
Florian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]