pthread_sigqueue
—
queue a signal to a specified thread
POSIX Threads Library (libpthread,
-lpthread)
#include
<pthread.h>
#include <signal.h>
int
pthread_sigqueue
(pthread_t
thread, int sig,
const union sigval
value);
The
pthread_queue
()
function queues a signal, specified by sig, to a
thread, specified by thread. If
sig is 0, error checking is performed, but no signal
is actually sent. The value is queued together with
the signal, and becomes available in siginfo_t data
passed to the signal handler.
The pthread_sigqueue
function is similar
to
sigqueue(2),
but targets a thread in the current process instead of a process. See
sigqueue(2)
for details about signal queueing and delivery selection.
If successful, pthread_sigqueue
() returns
0. Otherwise, an error number is returned.
The pthread_sigqueue
() function will fail
if:
- [
EAGAIN
]
- No resources are available to queue the signal. The current process has
already queued {
SIGQUEUE_MAX
} signals that are
still pending, or a system-wide resource limit has been exceeded.
- [
ESRCH
]
- thread is an invalid thread ID.
- [
EINVAL
]
- sig is an invalid or unsupported signal number.
The pthread_sigqueue
() function is a
FreeBSD extension. An identical function with the
same semantic is available in other operating systems.