I am reading this on the phone an I missed something. I think, I know where the confusion comes from. You write that the tear down sequence is: 1. end of main 2. dlclose (indirectly by system) library 3. execute at exit. I think it actually is: 1. end of main 2. execute at exit. 3. dlclose (indirectly by system) library Where at exit is something registered with stdlib's atexit function and not linker's __atexit annotation. --- Reply to this email directly or view it on GitHub: https://github.com/xrootd/xrootd/issues/338#issuecomment-195036669 ######################################################################## Use REPLY-ALL to reply to list To unsubscribe from the XROOTD-DEV list, click the following link: https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1