View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001201 | 1003.1(2016/18)/Issue7+TC2 | System Interfaces | public | 2018-08-22 14:10 | 2024-06-11 09:08 |
Reporter | Florian Weimer | Assigned To | |||
Priority | normal | Severity | Editorial | Type | Clarification Requested |
Status | Closed | Resolution | Accepted As Marked | ||
Name | Florian Weimer | ||||
Organization | Red Hat | ||||
User Reference | |||||
Section | sigsuspend | ||||
Page Number | 1984 | ||||
Line Number | 63848-63858 | ||||
Interp Status | Approved | ||||
Final Accepted Text | See 0001201:0004332 | ||||
Summary | 0001201: Atomicity requirements for sigsuspend | ||||
Description | The description says that sigsuspend changes the signal mask and then suspends the thread until a signal arrives, but does not indicate whether these two steps are atomic with regards to signal delivery. Based on the current wording, the following can happen: 1. The requested signal is unblocked. 2. The signal handler runs, so there is no pending signal anymore. 3. sigsuspend blocks indefinitely if no further signal arrives. This is somewhat counter-intuitive and makes the function harder to use than necessary. | ||||
Desired Action | Clarify whether implementations are required to provide atomicity in the described sense. | ||||
Tags | tc3-2008 |
|
The same question should be raised for sigpause, which does an unmask and wait also. |
|
Interpretation response ------------------------ The standard does not speak to this issue, and as such no conformance distinction can be made between alternative implementations based on this. This is being referred to the sponsor. Rationale: ------------- The intention of the committee was to make this function atomic, but the wording did not make this clear. Notes to the Editor (not part of this interpretation): ------------------------------------------------------- Change page 1984 lines 63848-63849 from: The sigsuspend( ) function shall replace the current signal mask of the calling thread with the set of signals pointed to by sigmask and then suspend the thread until delivery of a signal whose action is either to execute a signal-catching function or to terminate the process. to: The sigsuspend( ) function shall atomically both replace the current signal mask of the calling thread with the set of signals pointed to by sigmask and suspend the thread until delivery of a signal whose action is either to execute a signal-catching function or to terminate the process. Change on p1964 lines 63342-63343 The sigpause( ) function shall remove sig from the signal mask of the calling process and suspend the calling process until a signal is received. to: The sigpause( ) function shall atomically both remove sig from the signal mask of the calling process and suspend the calling process until a signal is delivered whose action is either to execute a signal-catching function or to terminate the process. |
|
Interpretation Proposed: 21st March 2019 |
|
Interpretation approved: 9 May 2019 |
Date Modified | Username | Field | Change |
---|---|---|---|
2018-08-22 14:10 | Florian Weimer | New Issue | |
2018-08-22 14:10 | Florian Weimer | Name | => Florian Weimer |
2018-08-22 14:10 | Florian Weimer | Organization | => Red Hat |
2018-08-22 14:10 | Florian Weimer | Section | => sigsuspend |
2018-08-22 14:10 | Florian Weimer | Page Number | => unknown |
2018-08-22 14:10 | Florian Weimer | Line Number | => unknown |
2018-08-24 20:23 | carlos | Note Added: 0004091 | |
2019-03-18 15:24 | nick | Page Number | unknown => 1984 |
2019-03-18 15:24 | nick | Line Number | unknown => 63848-63858 |
2019-03-18 15:24 | nick | Interp Status | => --- |
2019-03-18 15:26 | geoffclare | Project | 1003.1(2013)/Issue7+TC1 => 1003.1(2016/18)/Issue7+TC2 |
2019-03-18 15:49 | nick | Note Added: 0004332 | |
2019-03-18 15:49 | nick | Note Edited: 0004332 | |
2019-03-18 15:50 | nick | Interp Status | --- => Pending |
2019-03-18 15:50 | nick | Final Accepted Text | => See 0001201:0004332 |
2019-03-18 15:50 | nick | Status | New => Interpretation Required |
2019-03-18 15:50 | nick | Resolution | Open => Accepted As Marked |
2019-03-18 15:50 | nick | Tag Attached: tc3-2008 | |
2019-03-21 15:47 | agadmin | Interp Status | Pending => Proposed |
2019-03-21 15:47 | agadmin | Note Added: 0004343 | |
2019-05-09 09:27 | agadmin | Interp Status | Proposed => Approved |
2019-05-09 09:27 | agadmin | Note Added: 0004389 | |
2019-11-12 15:18 | geoffclare | Status | Interpretation Required => Applied |
2024-06-11 09:08 | agadmin | Status | Applied => Closed |