IEEE Standards Interpretation for IEEE Std 1003.1™-2001 IEEE Standard Standard for Information Technology -- Portable Operating System Interface (POSIX®)
Copyright © 2006 by the Institute of Electrical and Electronics Engineers, Inc. 3 Park Avenue New York, New York 10016-5997 USA All Rights Reserved.
Interpretations are issued to explain and clarify the intent of a standard and do not constitute an alteration to the original standard. In addition, interpretations are not intended to supply consulting information. Permission is hereby granted to download and print one copy of this document. Individuals seeking permission to reproduce and/or distribute this document in its entirety or portions of this document must contact the IEEE Standards Department for the appropriate license. Use of the information contained in this document is at your own risk.
IEEE Standards Department Copyrights and Permissions 445 Hoes Lane, Piscataway, New Jersey 08855-1331, USA
Interpretation Request #65
Topic: sigaction, SA_NODEFER Relevant Sections: XSH sigaction Page: 1364 Line: 42600
The role of the SA_NODEFER flag (XSI extension) is unclear from the standard text, with regards to the resulting thread's signal mask.
In the flag description, it is told that the new signal mask (for the signal handler duration) is made of the old signal mask, plus the sa_mask, and the caught signal is not added (unless it is part of sa_mask).
In the next paragraph, it is told that when the flag is set, the new signal mask is made of the old signal mask, plus only the signal which has been caught (sa_mask is ignored).
I think the first explanation makes more sense, so I would suggest replacing:
This mask is formed by taking the union of the current signal mask and the value of the sa_mask for the signal being delivered [XSI] [Option Start] unless SA_NODEFER or SA_RESETHAND is set, [Option End] and then including the signal being delivered.
This mask is formed by taking the union of the current signal mask and the value of the sa_mask for the signal being delivered, and then including the signal being delivered [XSI] [Option Start] unless SA_NODEFER or SA_RESETHAND is set [Option End].
Interpretation Response #65
The standards states the requirements for SA_DEFER, and conforming implementations must conform to this. However, concerns have been raised about this which are being referred to the sponsor.
Rationale for Interpretation