git: 42b071cbc91e - stable/14 - pthread_sigqueue(3): document

From: Konstantin Belousov <kib_at_FreeBSD.org>
Date: Tue, 30 Apr 2024 00:49:02 UTC
The branch stable/14 has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=42b071cbc91e18e45e21feff39ca9e47ef93cc55

commit 42b071cbc91e18e45e21feff39ca9e47ef93cc55
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2024-04-20 22:16:08 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2024-04-30 00:48:09 +0000

    pthread_sigqueue(3): document
    
    (cherry picked from commit 91da6becae6291533b9b59646b59bace2f905c81)
---
 share/man/man3/Makefile           |   1 +
 share/man/man3/pthread_sigqueue.3 | 102 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 103 insertions(+)

diff --git a/share/man/man3/Makefile b/share/man/man3/Makefile
index 2b2d7516c11f..75f209ab4e0d 100644
--- a/share/man/man3/Makefile
+++ b/share/man/man3/Makefile
@@ -453,6 +453,7 @@ PTHREAD_MAN=	pthread.3 \
 		pthread_set_name_np.3 \
 		pthread_setspecific.3 \
 		pthread_sigmask.3 \
+		pthread_sigqueue.3 \
 		pthread_spin_init.3 \
 		pthread_spin_lock.3 \
 		pthread_suspend_all_np.3 \
diff --git a/share/man/man3/pthread_sigqueue.3 b/share/man/man3/pthread_sigqueue.3
new file mode 100644
index 000000000000..bf5dd62f04e6
--- /dev/null
+++ b/share/man/man3/pthread_sigqueue.3
@@ -0,0 +1,102 @@
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.\" Copyright 2024 The FreeBSD Foundation, Inc.
+.\"
+.\" This documentation was written by
+.\" Konstantin Belousov <kib@FreeBSD.org> under sponsorship
+.\" from the FreeBSD Foundation.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice(s), this list of conditions and the following disclaimer as
+.\"    the first lines of this file unmodified other than the possible
+.\"    addition of one or more copyright notices.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice(s), this list of conditions and the following disclaimer in
+.\"    the documentation and/or other materials provided with the
+.\"    distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY
+.\" EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE
+.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+.\" BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+.\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+.\" OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+.\" EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.Dd April 21, 2024
+.Dt PTHREAD_SIGQUEUE 3
+.Os
+.Sh NAME
+.Nm pthread_sigqueue
+.Nd queue a signal to a specified thread
+.Sh LIBRARY
+.Lb libpthread
+.Sh SYNOPSIS
+.In pthread.h
+.In signal.h
+.Ft int
+.Fn pthread_sigqueue "pthread_t thread" "int sig" "const union sigval value"
+.Sh DESCRIPTION
+The
+.Fn pthread_queue
+function queues a signal, specified by
+.Fa sig ,
+to a thread, specified by
+.Fa thread .
+If
+.Fa sig
+is 0, error checking is performed, but no signal is actually sent.
+The
+.Fa value
+is queued together with the signal, and becomes available in
+.Vt siginfo_t
+data passed to the signal handler.
+.Pp
+The
+.Nm
+function is similar to
+.Xr sigqueue 2 ,
+but targets a thread in the current process instead of a process.
+See
+.Xr sigqueue 2
+for details about signal queueing and delivery selection.
+.Sh RETURN VALUES
+If successful,
+.Fn pthread_sigqueue
+returns 0.
+Otherwise, an error number is returned.
+.Sh ERRORS
+The
+.Fn pthread_sigqueue
+function will fail if:
+.Bl -tag -width Er
+.It Bq Er EAGAIN
+No resources are available to queue the signal.
+The current process has already queued
+.Brq Dv SIGQUEUE_MAX
+signals that are still pending,
+or a system-wide resource limit has been exceeded.
+.It Bq Er ESRCH
+.Fa thread
+is an invalid thread ID.
+.It Bq Er EINVAL
+.Fa sig
+is an invalid or unsupported signal number.
+.El
+.Sh SEE ALSO
+.Xr sigqueue 2
+.Sh STANDARDS
+The
+.Fn pthread_sigqueue
+function is a
+.Fx
+extension.
+An identical function with the same semantic is available in other
+operating systems.