Calling other functions while concurrently calling exit?
Carlos O'Donell
carlos@redhat.com
Mon Sep 21 14:40:00 GMT 2015
On 09/19/2015 09:54 PM, Martin Sebor wrote:
> On 09/18/2015 09:06 PM, Carlos O'Donell wrote:
>> Is it spelled out anywhere in POSIX or ISO C that calling
>> other functions concurrently with exit is going to result
>> in undefined behaviour?
>
> 7.1.4 Use of library functions of C11 requires library functions
> to avoid data races. So a program can safely call exit in one
> thread and whatever other standard C function other than exit
> or quick_exit in another thread.
>
>>
>> It's obvious this is dangerous. There is global state being
>> shtudown and freed while threads are trying to use that
>> global state. However, I can't find anything that explicitly
>> forbids this.
>>
>> Is it simply that one must read "Consequences of Process
>> Termination" and imply that problems might be caused by this?
>>
>> It isn't entirely obvious that you can't have a thread call
>> dlclose while main calls exit.
>
> I believe that's allowed by POSIX.
I silently expected this to be the case.
Rich already has a bug for this here:
https://sourceware.org/bugzilla/show_bug.cgi?id=14697
Cheers,
Carlos.
More information about the Libc-alpha
mailing list