aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Kerrisk <mtk.manpages@gmail.com>2007-06-25 09:24:48 +0000
committerMichael Kerrisk <mtk.manpages@gmail.com>2007-06-25 09:24:48 +0000
commit5a5574b9b68f3d0277f618da2827d7e51f280f31 (patch)
tree58d77a4debfd30e8cd9055743cb263cbb40a5d35
parentf531acc327ac8f75137f960077a602526d5a5f92 (diff)
downloadman-pages-5a5574b9b68f3d0277f618da2827d7e51f280f31.tar.gz
Note SIGRTMIN value depends on glibc.
Various rewites and additions to the text in real-time signals.
-rw-r--r--man7/signal.753
1 files changed, 40 insertions, 13 deletions
diff --git a/man7/signal.7 b/man7/signal.7
index 97fcc133fd..fe9798a3a7 100644
--- a/man7/signal.7
+++ b/man7/signal.7
@@ -97,7 +97,11 @@ A signal may be generated (and thus pending)
for a process as a whole (e.g., when sent using
.BR kill (2))
or for a specific thread (e.g., certain signals,
-such as SIGSEGV and SIGFPE, generated as a
+such as
+.B SIGSEGV
+and
+.BR SIGFPE ,
+generated as a
consequence of executing a specific machine-language instruction
are thread directed, as are signals targeted at a specific thread using
.BR pthread_kill (3)).
@@ -163,7 +167,7 @@ ____
lB c c l.
Signal Value Action Comment
SIGBUS 10,7,10 Core Bus error (bad memory access)
-SIGPOLL Term Pollable event (Sys V). Synonym of SIGIO
+SIGPOLL Term Pollable event (Sys V). Synonym of \fISIGIO\fP
SIGPROF 27,27,29 Term Profiling timer expired
SIGSYS 12,\-,12 Core Bad argument to routine (SVr4)
SIGTRAP 5 Core Trace/breakpoint trap
@@ -190,16 +194,16 @@ l c c l
____
lB c c l.
Signal Value Action Comment
-SIGIOT 6 Core IOT trap. A synonym for SIGABRT
+SIGIOT 6 Core IOT trap. A synonym for \fBSIGABRT\fP
SIGEMT 7,\-,7 Term
SIGSTKFLT \-,16,\- Term Stack fault on coprocessor (unused)
SIGIO 23,29,22 Term I/O now possible (4.2BSD)
-SIGCLD \-,\-,18 Ign A synonym for SIGCHLD
+SIGCLD \-,\-,18 Ign A synonym for \fBSIGCHLD\fP
SIGPWR 29,30,19 Term Power failure (System V)
-SIGINFO 29,\-,\- A synonym for SIGPWR
+SIGINFO 29,\-,\- A synonym for \fBSIGPWR\fP
SIGLOST \-,\-,\- Term File lock lost
SIGWINCH 28,28,20 Ign Window resize signal (4.3BSD, Sun)
-SIGUNUSED \-,31,\- Term Unused signal (will be SIGSYS)
+SIGUNUSED \-,31,\- Term Unused signal (will be \fBSIGSYS\fP)
.TE
(Signal 29 is
@@ -226,13 +230,35 @@ on several other Unix systems.
.SS "Real-time Signals"
Linux supports real-time signals as originally defined in the POSIX.1b
real-time extensions (and now included in POSIX.1-2001).
-Linux supports 32 real-time signals, numbered from 32
-.RB ( SIGRTMIN )
-to 63
-.RB ( SIGRTMAX ).
-(Programs should always refer to real-time signals using notation
+The range of supported real-time signals is defined by the macros
+.B SIGRTMIN
+and
+.BR SIGRTMAX .
+POSIX.1-2001 requires that an implementation support at least
+.B _POSIX_RTSIG_MAX
+(8) real-time signals.
+.PP
+The Linux kernel supports a range of 32 different real-time
+signals, numbered 33 to 64.
+However, the glibc POSIX threads implementation internally uses
+two (for NPTL) or three (for LinuxThreads) real-time signals
+(see
+.BR pthreads (7)),
+and adjusts the value of
+.B SIGRTMIN
+suitably (to 34 or 35).
+Because the range of available real-time signals varies according
+to the glibc threading implementation (and this variation can occur
+at run-time according to the available kernel and glibc),
+and indeed the range of real-time signals varies across Unix systems,
+programs should
+.IR "never refer to real-time signals using hard-coded numbers" ,
+but instead should always refer to real-time signals using the notation
.BR SIGRTMIN +n,
-since the range of real-time signal numbers varies across Unix systems.)
+and include suitable (run-time) checks that
+.BR SIGRTMIN +n
+does not exceed
+.BR SIGRTMAX .
.PP
Unlike standard signals, real-time signals have no predefined meanings:
the entire set of real-time signals can be used for application-defined
@@ -282,7 +308,8 @@ Linux, like many other implementations, gives priority
to standard signals in this case.
.PP
According to POSIX, an implementation should permit at least
-_POSIX_SIGQUEUE_MAX (32) real-time signals to be queued to
+.B _POSIX_SIGQUEUE_MAX
+(32) real-time signals to be queued to
a process.
However, Linux does things differently.
In kernels up to and including 2.6.7, Linux imposes