summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2011-08-25 10:00:38 +0000
committerkib <kib@FreeBSD.org>2011-08-25 10:00:38 +0000
commita9e2c1ebfb91bfc4295fdf7873cf3bddb8055b7e (patch)
tree185b3cca5011d20e4075bf6d4771e2ffb1e159de /lib
parente414ca1893163f229dda1e3e25d9b4ec53e4d7b2 (diff)
downloadFreeBSD-src-a9e2c1ebfb91bfc4295fdf7873cf3bddb8055b7e.zip
FreeBSD-src-a9e2c1ebfb91bfc4295fdf7873cf3bddb8055b7e.tar.gz
Clarify the behaviour of sigwait() on signal interruption, and note
the difference between sigwait() and sigtimedwait()/sigwaitinfo(). Approved by: re (bz)
Diffstat (limited to 'lib')
-rw-r--r--lib/libc/sys/sigwait.210
-rw-r--r--lib/libc/sys/sigwaitinfo.212
2 files changed, 20 insertions, 2 deletions
diff --git a/lib/libc/sys/sigwait.2 b/lib/libc/sys/sigwait.2
index 8c00cf4..a9e605c 100644
--- a/lib/libc/sys/sigwait.2
+++ b/lib/libc/sys/sigwait.2
@@ -27,7 +27,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd November 11, 2005
+.Dd August 24, 2011
.Dt SIGWAIT 2
.Os
.Sh NAME
@@ -82,6 +82,14 @@ selected, it will be the lowest numbered one.
The selection order between realtime
and non-realtime signals, or between multiple pending non-realtime signals,
is unspecified.
+.Sh IMPLEMENTATION NOTES
+The
+.Fn sigwait
+function is implemented as a wrapper around the
+.Fn __sys_sigwait
+system call, which retries the call on
+.Er EINTR
+error.
.Sh RETURN VALUES
If successful,
.Fn sigwait
diff --git a/lib/libc/sys/sigwaitinfo.2 b/lib/libc/sys/sigwaitinfo.2
index 41be9e2..a83de06 100644
--- a/lib/libc/sys/sigwaitinfo.2
+++ b/lib/libc/sys/sigwaitinfo.2
@@ -27,7 +27,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd November 11, 2005
+.Dd August 24, 2011
.Dt SIGTIMEDWAIT 2
.Os
.Sh NAME
@@ -116,6 +116,16 @@ except that the selected signal number shall be stored in the
member, and the cause of the signal shall be stored in the
.Va si_code
member.
+Besides this, the
+.Fn sigwaitinfo
+and
+.Fn sigtimedwait
+system calls may return
+.Er EINTR
+if interrupted by signal, which is not allowed for the
+.Fn sigwait
+function.
+.Pp
If any value is queued to the selected signal, the first such queued
value is dequeued and, if the info argument is
.Pf non- Dv NULL ,
OpenPOWER on IntegriCloud