NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: lib/56979: fork(2) fails to be signal safe



Am Thu, Aug 25, 2022 at 04:30:00PM +0000 schrieb tgl%sss.pgh.pa.us@localhost:
> >Fix:
> Is there a way to not need the RTLD lock during fork()?

Depending on what you want to do, you can use __fork() directly. That
skipps the locking, but also e.g. pthread_atfork(3).

At this point, I have mostly given up on async signal safety for
fork(2). On the one hand, way too many programs and libraries nowadays
expect fork from multi-threaded progams to give a mostly usable state
(e.g. beyond "I can run exec now"). Then you have all the work fork()
has to do beyond being a simple system call (the traditional members of
the async signal safe list all are). E.g. pthread_atfork has to be
written to be atomic regarding any interruption by a signal handler.

Joerg


Home | Main Index | Thread Index | Old Index