This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Race and segmentation fault in pthread_kill() vs thread teardown


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]