|
Message-ID: <ZqFpxCPjJ4vGwCCf@kib.kiev.ua> Date: Wed, 24 Jul 2024 23:53:24 +0300 From: Konstantin Belousov <kostikbel@...il.com> To: libc-coord@...ts.openwall.com Cc: musl@...ts.openwall.com, libc-alpha@...rceware.org Subject: Re: Making exit actually thread-safe On Wed, Jul 24, 2024 at 03:09:48PM -0400, Rich Felker wrote: > Inspired by Rust issue 126600, there seems to be renewed interest in > the (non-) thread-safety of exit, namely the C (and copied in POSIX > text) stipulation that calling exit "more than once" results in > undefined behavior. > > This language predates threads and thus was certainly written with > recursive calls (via atexit handlers) in mind as the way one might > come to call exit "more than once". > > My view is that making calls to exit from multiple threads (one or > more additional threads while the first caller is still acting on > exit) undefined is a mistake and is harmful. There is a clear unique > reasonable behavior for this situation: any remaining callers block > until the first call to exit has finished, at which point they no > longer exist. Leaving exit via longjmp, exceptions, etc. is undefined, > so there are no concerns about what happens in such a situation. The > additional calls to exit all behave as expected: the process > terminates. > > Currently there is a glibc tracker item, #31997, and an Austin Group > (POSIX) tracker item, #1845, open for this topic, as well as the > original Rust tracker thread. I have participated in all of these, and > would like to move this forward towards consensus on whether any new > thread-safety requirement should be adopted, and if so, what the > specific semantics should be. > > Links: > > https://github.com/rust-lang/rust/issues/126600 > https://sourceware.org/bugzilla/show_bug.cgi?id=31997 > https://austingroupbugs.net/view.php?id=1845 I do think that the wording in the austin group bug is reasonable, and intend to do that for FreeBSD, https://reviews.freebsd.org/D46108
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.