Fix discussion of alternate signals stack

This commit is contained in:
Michael Kerrisk 2005-06-08 13:27:21 +00:00
parent 3616b7c0cf
commit 23a6e651f3
1 changed files with 36 additions and 27 deletions

View File

@ -137,8 +137,8 @@ latter being the default (if supported by the underlying kernel).
.SS LinuxThreads
The notable features of this implementation are the following:
.IP \- 3
In addition to the main (initial) thread, and the threads it creates
using
In addition to the main (initial) thread,
and the threads that the program creates using
.BR pthread_create (),
the implementation creates a "manager" thread.
This thread handles thread creation and termination.
@ -225,19 +225,28 @@ arbitrarily selected thread within the process.
LinuxThreads does not support the notion of process-directed signals:
signals may only be sent to specific threads.
.IP \- 3
A new thread inherits alternate signal stack settings
from the thread that created it.
(A new thread should start with no alternate signal stack defined.)
Threads have distinct alternate signal stack settings.
However, a new thread's alternate signal stack settings
are copied from the the thread that created it, so that
the threads initially share an alternate signal stack.
(A new thread should start with no alternate signal stack defined.
If two threads handle signals on their shared alternate signal
stack at the same time, unpredictable program failures are
likely to occur.)
.SS NPTL
With NPTL, all of the threads in a process are placed
in the same thread group;
all members of a thread groups share the same PID.
NPTL does not employ a manager thread;
nor does it make internal use of signals.
NPTL does not employ a manager thread.
NPTL makes internal use of the first two real-time signals;
these signals cannot be used in applications.
NPTL still has a few non-conformances with POSIX.1:
.IP \- 3
A new thread inherits alternate signal stack settings
from the thread that created it.
Threads have distinct alternate signal stack settings.
However, a new thread's alternate signal stack settings
are copied from the the thread that created it, so that
the threads initially share an alternate signal stack.
.IP \- 3
Threads do not share a common nice value.
.IP \- 3