Bug 53061 - pthread_kill() should describe it may cause SEGV when target thread doesn't exist
Summary: pthread_kill() should describe it may cause SEGV when target thread doesn't e...
Status: RESOLVED CODE_FIX
Alias: None
Product: Documentation
Classification: Unclassified
Component: man-pages (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: documentation_man-pages@kernel-bugs.osdl.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-01-26 01:38 UTC by KOSAKI Motohiro
Modified: 2015-05-05 19:12 UTC (History)
1 user (show)

See Also:
Kernel Version:
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description KOSAKI Motohiro 2013-01-26 01:38:55 UTC
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."
Comment 1 Michael Kerrisk 2015-05-05 19:12:47 UTC
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.

Note You need to log in before you can comment on or make changes to this bug.