Source-Changes archive

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

Re: CVS commit: src/lib/libc/stdlib



>Log Message:
>Fix lib/20558:
>A dynamically linked program invokes the rtld cleanup routine via
>an atexit handler.  This rtld cleanup routine invokes _fini() for
>shared libraries, which in-turn invoke __cxa_finalize() with their
>DSO handle.  By luck, this happens to work okay for non-threaded
>programs, but for a threaded program, this leads to deadlock (sometimes
>manifested as an assertion failure, if the program didn't actually
>create any threads).
>
>Fixed by teaching __cxa_finalize() that it can be recursively invoked,
>adjusting the handler list manipulation accordingly.

mmm...*MUCH* better.  thanks muchly.  :)

-- 
|-----< "CODE WARRIOR" >-----|
codewarrior%daemon.org@localhost             * "ah!  i see you have the internet
twofsonet%graffiti.com@localhost (Andrew Brown)                that goes 
*ping*!"
werdna%squooshy.com@localhost       * "information is power -- share the 
wealth."



Home | Main Index | Thread Index | Old Index