On 7 November 2014 10:57, Steffen Nurpmeso wrote: > Safety against asynchronous un-/registration can't be it, anyway. No, there's a lock. I meant avoiding too many possible interactions between low-level run-time functions and the rest of the library. (I'd consider atexit and exit to be lower-level functions than malloc.) Since atexit is already used by profile, and is called by _profmain, which is called very early on, putting a call to malloc in that chain means you have to think that much harder about interactions that are already quite subtle. Note that _profmain allocates its memory directly using sbrk, probably for that reason. Suppose I later want to add a malloc profiler, can I call atexit to write the results, or not?