aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2024-04-20 22:16:08 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2024-04-30 00:48:09 +0000
commit42b071cbc91e18e45e21feff39ca9e47ef93cc55 (patch)
tree74d1755dc4ee86191096e77c43ec4ca698752374
parente449481bee5fd08d4342156696eb4a6eef531ef0 (diff)
downloadsrc-42b071cbc91e18e45e21feff39ca9e47ef93cc55.tar.gz
src-42b071cbc91e18e45e21feff39ca9e47ef93cc55.zip
pthread_sigqueue(3): document
(cherry picked from commit 91da6becae6291533b9b59646b59bace2f905c81)
-rw-r--r--share/man/man3/Makefile1
-rw-r--r--share/man/man3/pthread_sigqueue.3102
2 files changed, 103 insertions, 0 deletions
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.