Defect report from : Alexander Terekhov , IBM
(Please direct followup comments direct to yyyyyyyyyyyyyy@xxxxxxxxxxxxx)
@ page Uhmm line
9654,9825,30903-30905,35413,35428,35438,41457,41523-41526,41607,41947-41958,41997-41998,42192-42193,48179-48180
section "process signal mask" comment {4}
Problem:
Defect code : 1. Error
David Butenhof wrote:
[...]
> 2) You've uncovered a bug in the specification that should be repaired in
> the corrigenda. There is no such thing as a "process signal mask", and even
> if it existed pselect() would have no business altering it. It needs to be
> fixed to specify the THREAD signal mask.
Please take a look at the results of my search on "signal mask"
in the context of "process signal mask" (I think that these
places (well, perhaps not all, but...) might need to be
"corrected" as well):
http://www.opengroup.org/publications/mem-online/c951/c951.pdf
9654 -Process signal mask (see sigprocmask())
9825 SIG_IGN, and that the process signal mask be unchanged across an exec.
30903 If sigmask is not a null pointer, then the pselect( ) function shall
replace the signal mask of the
30904 process by the set of signals pointed to by sigmask before examining the
descriptors, and shall
30905 restore the signal mask of the process before returning.
35413 process’ signal mask shall be unchanged;
35428 shall be set to indicate the error, and the process’ signal mask shall be
unchanged.
35438 When a process’ signal mask is changed in a signal-catching function that
is installed by
41457 signals that shall be added to the process’ signal mask before the
signal-catching function is
41523 XSI SA_NODEFER If set and sig is caught, sig shall not be added to the
process’ signal mask
41524 on entry to the signal handler unless it is included in sa_mask.Otherwise,
41525 sig shall always be added to the process’ signal mask on entry to the
41526 signal handler.
41607 used to leave the signal handler, then the signal mask must be explicitly
restored by the process.
41947 used, and disp is the address of a signal handler, the system shall add
sig to the calling process’
41948 signal mask before executing the signal handler; when the signal handler
returns, the system
41949 shall restore the calling process’ signal mask to its state prior to the
delivery of the signal. In
41950 addition, if sigset( ) is used, and disp is equal to SIG_HOLD, sig shall
be added to the calling
41951 process’ signal mask and sig’s disposition shall remain unchanged. If
sigset( ) is used, and disp is
41952 not equal to SIG_HOLD, sig shall be removed from the calling process’
signal mask.
41953 The sighold ( ) function shall add sig to the calling process’ signal
mask.
41954 The sigrelse( ) function shall remove sig from the calling process’
signal mask.
41955 The sigignore( ) function shall set the disposition of sig to SIG_IGN.
41956 The sigpause( ) function shall remove sig from the calling process’
signal mask and suspend the
41957 calling process until a signal is received. The sigpause( ) function
shall restore the process’ signal
41958 mask to its original state before returning.
41997 The DESCRIPTION is updated to indicate that the sigpause( ) function
restores the process’
41998 signal mask to its original state before returning.
42192 The DESCRIPTION is updated to indicate that the sigpause( ) function
restores the process’
42193 signal mask to its original state before returning.
48179 unspecified whether the SIGALRM signal is blocked, unless the process’
signal mask is restored
48180 as part of the environment.
Action:
Change "process signal mask" to "thread signal mask".
|