| To: | yyyyyyyyyyyyyyy@xxxxxxxxxxxxx |
|---|---|
| Subject: | Defect in XSH sigaltstack() |
| From: | yyyyyyy@xxxxxxxxxx |
| Date: | Wed, 27 Feb 2002 04:01:26 GMT |
Defect report from : Ulrich Drepper , Red Hat
(Please direct followup comments direct to yyyyyyyyyyyyyy@xxxxxxxxxxxxx)
@ page 1345 line 41764f section sigaltstack() objection {ud-5}
Problem:
Defect code : 2. Omission
The sigaltstack() definition currently says wrt to threads only the
following:
Use of this function by library threads that are not bound to
kernel-scheduled entities results in undefined behavior.
This is not enough IMO. At least not without clarifications.
The above statement only makes sense if alternate stacks are
per-thread. This isn't stated anywhere, though. And the pthread_create
desription doesn't say anything about inherinting or resetting the
alternate stack either.
Alternatively, if alternate stack are per-process, this function and alternate
stack cannot be used at all. More than one signal can be
handled by various threads of a process at the same time which would require
the same alternate stack be used by multiple threads at the
same time.
Action:
Two alternatives:
If alternate stacks are per-thread, say this explicitlly. Add to
the first sentence in line 41735:
for the current thread
Also in the pthread_create man page add as a new line 32853:
The alternate stack is not inherited.
Mark this sentence XSI
Second alternative:
If thread are per-process add to the sentence in the lines
41764-41675 with:
sigaltstack() can be used in multi-threaded applications only
if it can be made sure that never more than one signal is
processed at any one time.
And in the rational:
Since the requirement that only one signal at any one time can
be processed in multi-threaded applications can (almost) never
be fulfilled this function effectively cannot be used in multi-
threaded applications.
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Defect in XSH siginterrupt(), drepper |
|---|---|
| Next by Date: | formatting flaw in XSH getopt(), Andries.Brouwer |
| Previous by Thread: | Defect in XSH siginterrupt(), drepper |
| Next by Thread: | Defect in XSH sigaltstack(), drepper |
| Indexes: | [Date] [Thread] [All Lists] |