PTHREAD_SIGQUEUE(3)

NAME
pthread_sigqueue - queue a signal and data to a thread

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

Compile and link with -pthread.

Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

pthread_sigqueue(): _GNU_SOURCE

DESCRIPTION
The pthread_sigqueue() function performs a similar task to sigqueue(2), but, rather than sending a signal to another process, it sends a signal to another thread in the same process as the calling thread. The thread argument is the ID of another thread in the same process as the caller. The sig argument specifies the signal to be sent. The value argument specifies data to accompany the signal; see sigqueue(2) for details.

RETURN VALUE
On success, pthread_create() returns 0; on error, it returns an error number.

ERRORS

EAGAIN
    The limit of signals which may be queued has been reached. (See signal(7) for further information.)

EINVAL
    sig was invalid.

ENOSYS
    pthread_sigqueue() is not supported on this system.

ESRCH
    thread is not valid.

VERSIONS
The pthread_sigqueue() function first appeared in glibc 2.11. It is implemented using the Linux-specific rt_tgsigqueinfo() system call, which was added in Linux 2.6.31.

CONFORMING TO
This function is a GNU extension.

SEE ALSO
sigaction(2), sigqueue(2), sigwait(2), pthread_sigmask(3), pthreads(7), signal(7)

COLOPHON
This page is part of release 3.32 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/.