On Tue, Nov 12, 2019 at 1:38 PM Florian Weimer <fw@xxxxxxxxxxxxx> wrote: > > * enh: > > > POSIX removed ESRCH years ago. > > > > In resolving http://austingroupbugs.net/view.php?id=1214 it was made > > clear that callers can't rely on using signal 0 to test for the > > continued existence of a thread. Update the man page to make it clearer > > that this doesn't generally work (even if it sometimes seems to). > > > > See also the long explanation of why this is the case (and how to fix > > your code) here: > > > > https://android.googlesource.com/platform/bionic/+/master/docs/status.md#invalid-handling-targetsdkversion-o > > Well, if you fix the thread exit race (like musl did, and glibc should > as well, see bug 12889), you could get a reliable ESRCH as a side > effect. Pity that POSIX doesn't allow that. this isn't about the tid stored *in* the object that the pthread_t points to. like i (briefly) said in the commit message, this is because a pthread_t is a pointer, so if you have an old pthread_t that's been recycled... boom! > I think this might be a case where common (but not unavoidable) > implementation problems get in the way of a better standard. Usually, > it's the other way round.