OpenBSD manual page server

Manual Page Search Parameters
THRKILL(2) System Calls Manual THRKILL(2)

thrkillsend signal to a thread in the same process

#include <signal.h>

int
thrkill(pid_t tid, int sig, void *tcb);

The () 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.

Upon successful completion, the value 0 is returned; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

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

[]
sig is not a valid signal number.
[]
The process doesn't have a thread with thread ID tid.
[]
tcb is not NULL and not the TCB address of the thread with thread ID tid.

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

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

The thrkill() system call appeared in OpenBSD 5.9.

March 19, 2016 OpenBSD-current