Now, pthrad_kill() man page have following explanation. http://man7.org/linux/man-pages/man3/pthread_kill.3.html >ERRORS > > EINVAL An invalid signal was specified. > > ESRCH No thread with the ID thread could be found. But it is misleading. Current implementation cause SEGV when no thread ID exist highly likely. As suggested Rich on libc-alpha (http://permalink.gmane.org/gmane.comp.lib.glibc.alpha/28919). it would be nice if the man page point to following POSIX sentence. POSIX XSH 2.9.2: "The lifetime of a thread ID ends after the thread terminates if it was created with the detachstate attribute set to PTHREAD_CREATE_DETACHED or if pthread_detach() or pthread_join() has been called for that thread. A conforming implementation is free to reuse a thread ID after its lifetime has ended. If an application attempts to use a thread ID whose lifetime has ended, the behavior is undefined."
The pthreads(7) page now carries this text: [[ The system may reuse a thread ID after a terminated thread has been joined, or a detached thread has terminated. POSIX says: "If an application attempts to use a thread ID whose lifetime has ended, the behavior is undefined." ]] I think that more or less satisfies your request, so I'm closing this bug. Thanks for the report.