Race and segmentation fault in pthread_kill() vs thread teardown
Rich Felker
dalias@aerifal.cx
Wed Oct 2 21:10:00 GMT 2013
On Wed, Oct 02, 2013 at 10:11:23AM +0200, Andreas Schwab wrote:
> The POSIX spec is pretty clear:
>
> If an application attempts to use a thread ID whose lifetime has ended,
> the behavior is undefined.
>
> I'd suggest to file a bug report with the Austin group wrt to the
> wording in pthread_kill.
It's perfectly valid to use pthread_kill with a signal number of 0 to
determine whether the thread has exited, but only as long as the
thread ID is still valid. The only way it can still be valid is if the
thread was joinable and has not been joined. If a detached thread
exits or the thread is joined after exiting, the thread ID is invalid
and using it for any purpose invokes undefined behavior.
Rich
More information about the Libc-alpha
mailing list