Austin Group Defect Tracker

Aardvark Mark IV


Viewing Issue Simple Details Jump to Notes ] Issue History ] Print ]
ID Category Severity Type Date Submitted Last Update
0001201 [1003.1(2016/18)/Issue7+TC2] System Interfaces Editorial Clarification Requested 2018-08-22 14:10 2019-11-12 15:18
Reporter Florian Weimer View Status public  
Assigned To
Priority normal Resolution Accepted As Marked  
Status Applied  
Name Florian Weimer
Organization Red Hat
User Reference
Section sigsuspend
Page Number 1984
Line Number 63848-63858
Interp Status Approved
Final Accepted Text See Note: 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
Attached Files

- Relationships

-  Notes
(0004091)
carlos (reporter)
2018-08-24 20:23

The same question should be raised for sigpause, which does an unmask and wait also.
(0004332)
nick (manager)
2019-03-18 15:49
edited on: 2019-03-18 15:49

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.


(0004343)
agadmin (administrator)
2019-03-21 15:47

Interpretation Proposed: 21st March 2019
(0004389)
agadmin (administrator)
2019-05-09 09:27

Interpretation approved: 9 May 2019

- Issue History
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 Note: 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


Mantis 1.1.6[^]
Copyright © 2000 - 2008 Mantis Group
Powered by Mantis Bugtracker