logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

This manual page is part of the POSIX Programmer's Manual. The Linux implementation of this interface

Application Usage

       The pthread_kill() function provides a mechanism for asynchronously directing a signal at a thread in the
       calling process. This could be used, for example, by one thread to affect broadcast delivery of a  signal
       to a set of threads.

       Note  that  pthread_kill()  only  causes the signal to be handled in the context of the given thread; the
       signal action (termination or stopping) affects the process as a whole.

Description

       The pthread_kill() function shall request that a signal be delivered to the specified thread.

       As in kill(), if sig is zero, error checking shall be performed but no signal shall actually be sent.

Errors

       The pthread_kill() function shall fail if:

       EINVAL The value of the sig argument is an invalid or unsupported signal number.

       The pthread_kill() function shall not return an error code of [EINTR].

       Thefollowingsectionsareinformative.

Examples

       None.

Future Directions

       A  future  version  of this standard may require that pthread_kill() not fail with [ESRCH] in the case of
       sending signals to an inactive thread (a terminated thread not yet detached or joined),  even  though  no
       signal will be delivered because the thread is no longer running.

Name

       pthread_kill — send a signal to a thread

Prolog

       This  manual  page  is part of the POSIX Programmer's Manual.  The Linux implementation of this interface
       may differ (consult the corresponding Linux manual page for details of Linux behavior), or the  interface
       may not be implemented on Linux.

Rationale

       If an implementation detects use of a thread ID after the end of its lifetime, it is recommended that the
       function should fail and report an [ESRCH] error.

       Existing implementations vary on the result of a pthread_kill() with a thread ID indicating  an  inactive
       thread  (a terminated thread that has not been detached or joined). Some indicate success on such a call,
       while others give an error of [ESRCH].  Since the  definition  of  thread  lifetime  in  this  volume  of
       POSIX.1‐2017  covers  inactive  threads, the [ESRCH] error as described is inappropriate in this case. In
       particular, this means that an application cannot have one thread check for termination of  another  with
       pthread_kill().

Return Value

       Upon  successful  completion,  the  function shall return a value of zero.  Otherwise, the function shall
       return an error number. If the pthread_kill() function fails, no signal shall be sent.

See Also

kill(), pthread_self(), raise()

       The Base Definitions volume of POSIX.1‐2017, <signal.h>

Synopsis

       #include <signal.h>

       int pthread_kill(pthread_t thread, int sig);

See Also