On 7 November 2014 10:57, Steffen Nurpmeso <sdaoden@yandex.com> 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?