tech-userlevel archive

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

Re: Add a hack to deinstall pthread_atexit handlers at dso unload time



On Wed, Feb 08, 2017 at 10:36:37PM +0100, Joerg Sonnenberger wrote:
> Sorry, wrong rant. That was for the TLS destructor problem where similar
> crude hacks exist. The FreeBSD "solution" is still wrong. Introducing
> __pthread_cxa_finalize or even a public interface for that is fine.
> Iterating over all text segments to guess what handlers to remove is
> definitely not fine.

If we are not going to do what all others do, I would suggest the very
most simple solution:

Add 

     int
     pthread_atfork_deregister(void (*prepare)(void), void (*parent)(void),
         void (*child)(void));

and make it remove the handlers from the internal list if != NULL.

Then the DSO can just handle it all "manually" in a destructor function.

Martin


Home | Main Index | Thread Index | Old Index