pthread_kill - send a signal to a thread
int pthread_kill(pthread_t thread, int sig);
Compile and link with -pthread
Feature Test Macro Requirements for glibc (see feature_test_macros
_POSIX_C_SOURCE >= 199506L ||
_XOPEN_SOURCE >= 500
() function sends the signal sig
a thread in the same process as the caller. The signal is asynchronously
directed to thread
is 0, then no signal is sent, but error checking is still
On success, pthread_kill
() returns 0; on error, it returns an error
number, and no signal is sent.
- An invalid signal was specified.
For an explanation of the terms used in this section, see attributes
Signal dispositions are process-wide: if a signal handler is installed, the
handler will be invoked in the thread thread
, but if the disposition of
the signal is "stop", "continue", or
"terminate", this action will affect the whole process.
The glibc implementation of pthread_kill
() gives an error (EINVAL
on attempts to send either of the real-time signals used internally by the
NPTL threading implementation. See nptl
(7) for details.
POSIX.1-2008 recommends that if an implementation detects the use of a thread ID
after the end of its lifetime, pthread_kill
() should return the error
. The glibc implementation returns this error in the cases where
an invalid thread ID can be detected. But note also that POSIX says that an
attempt to use a thread ID whose lifetime has ended produces undefined
behavior, and an attempt to use an invalid thread ID in a call to
() can, for example, cause a segmentation fault.