PTHREAD_SIGQUEUE(3)

NAME
pthread_sigqueue - queue a signal to a specified thread

LIBRARY
libpthread

SYNOPSIS
#include <pthread.h>
#include <signal.h>
int
pthread_sigqueue(pthread_t thread, int sig, const union sigval value);

DESCRIPTION
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.

RETURN VALUES
If successful, pthread_sigqueue() returns 0. Otherwise, an error number is returned.

ERRORS
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.

SEE ALSO
sigqueue(2)

STANDARDS
The pthread_sigqueue() function is a FreeBSD extension. An identical function with the same semantic is available in other operating systems.