On Tue, Mar 30, 2004 at 11:25:01AM -0500, Daniel Eischen wrote: > > On Tue, Mar 30, 2004 at 01:37:44AM -0800, Sean McNeil wrote: > > > I'm still concerned that nss_atexit can cause a seg11 if a nss_*.so.1 > > > starts up any threads when the program isn't threaded otherwise. Don't > > > really know why an nss plugin would want to do that, but it is > > > hazardous. > > It shouldn't be doing that. Why do I get the sinking feeling that we'll need to have nsswitch pull in e.g. nss_foo.so.1 if (!__isthreaded) and nss_foo_r.so.1 otherwise? > > The locks may not be needed regardless. Dan, how do threads interact > > with atexit()? Are threads serialized at that point? Does the main > > thread call all the atexit handlers? > > exit() calls the finalization of atexit() to run down the exit > handlers. The threads library has nothing to do with it, > but the atexit() stuff is protected with mutexes (see > src/lib/libc/stdlib/atexit.c). So whichever thread calls exit() will call all of the registered atexit handlers? So why are the mutexes needed? You are referring to __cxa_finalize, correct? It appears to me that in any case, the atexit_mutex is not held while calling the actual handler. Cheers, -- Jacques Vidrine / nectar_at_celabo.org / jvidrine_at_verio.net / nectar_at_freebsd.orgReceived on Wed Mar 31 2004 - 06:00:41 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:49 UTC