THRKILL(2)

NAME
thrkill - send signal to a thread in the same process

SYNOPSIS
#include <signal.h>
int
thrkill(pid_t tid, int sig, void *tcb);

DESCRIPTION
The thrkill() function sends the signal given by sig to tid, a thread in the same process as the caller. thrkill() will only succeed if tcb is either NULL or the address of the thread control block (TCB) of the target thread. sig may be one of the signals specified in sigaction(2) or it may be 0, in which case error checking is performed but no signal is actually sent.

If tid is zero then the current thread is targeted.

RETURN VALUES

ERRORS
thrkill() will fail and no signal will be sent if:

[EINVAL]
    sig is not a valid signal number.

[ESRCH]
    The process doesn't have a thread with thread ID tid.

[ESRCH]
    tcb is not NULL and not the TCB address of the thread with thread ID tid.

SEE ALSO
__get_tcb(2), kill(2), sigaction(2), pthread_kill(3), raise(3)

STANDARDS
The __thrsigdivert() function is specific to OpenBSD and should not be used in portable applications. Use pthread_kill(3) instead.

HISTORY
The thrkill() system call appeared in OpenBSD 5.9.