THRKILL(2) | System Calls Manual | 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

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.

# 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 `thrkill`() 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.

March 19, 2016 | Debian