summaryrefslogtreecommitdiff
path: root/src/exit/atexit.c
AgeCommit message (Collapse)AuthorLines
2012-08-19fix bug whereby most atexit-registered functions got skippedRich Felker-3/+2
2012-04-24ditch the priority inheritance locks; use malloc's version of lockRich Felker-7/+7
i did some testing trying to switch malloc to use the new internal lock with priority inheritance, and my malloc contention test got 20-100 times slower. if priority inheritance futexes are this slow, it's simply too high a price to pay for avoiding priority inversion. maybe we can consider them somewhere down the road once the kernel folks get their act together on this (and perferably don't link it to glibc's inefficient lock API)... as such, i've switch __lock to use malloc's implementation of lightweight locks, and updated all the users of the code to use an array with a waiter count for their locks. this should give optimal performance in the vast majority of cases, and it's simple. malloc is still using its own internal copy of the lock code because it seems to yield measurably better performance with -O3 when it's inlined (20% or more difference in the contention stress test).
2011-10-14add dummy __cxa_finalizeRich Felker-0/+4
musl's dynamic linker does not support unloading dsos, so there's nothing for this function to do. adding the symbol in case anything depends on its presence..
2011-10-14support __cxa_atexit, and registering atexit functions from atexit handlersRich Felker-7/+26
mildly tested; may have bugs. the locking should be updated not to use spinlocks but that's outside the scope of this one module.
2011-10-14simplify atexit and fflush-on-exit handlingRich Felker-4/+1
2011-02-12initial check-in, version 0.5.0v0.5.0Rich Felker-0/+57