pthread_sigqueue(3)

pthread_sigqueue3

Queue a signal to a specified thread

Usage

#include <pthread.h>

#include <signal.h>

int

pthread_sigqueue(pthread_t thread, int sig, const union sigval value);

Library

POSIX Threads Library (libpthread, -lpthread)

Overview

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.

Releases

8 releases since FreeBSD 14.1-RELEASE; the text changed 1 time.

  1. 14.1–14.2
  2. 14.3–16.0

Standards

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

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's mdoc source.