Bug #5281
closedincorrect realtime signal delivery
0%
Description
Multiple pending realtime signals, of differing priority, are delivered in reverse order of what they should be. POSIX clearly states that realtime signals are to be delivered lower signal first.
http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_04_02
http://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xsh_chap02.html#tag_22_02_04_03
Updated by Ryan Zezeski about 9 years ago
Updated by Ryan Zezeski about 9 years ago
- Status changed from New to In Progress
- % Done changed from 0 to 100
I interpreted the POSIX spec incorrectly (a mistake several others have made, including Richard Stevens). I did not realize the rationale section is for application developers, not systems dev. In that case the rationale clearly states that you must mask lower priority signals in sa_mask if you don't want the handling of a higher priority signal to be interrupted by a lower one. It seems there is some subtle difference between delivery and handling which is not defined in the spec.
The following link points to errata for Unix Network Programming Vol 2, where Stevens indicates that he interpreted the spec incorrectly and that sa_mask must be used (see comments for p. 102):
http://www.kohala.com/start/unpv22e/typos.unpv22e.html#comments
The following link is a bug report from the Austin group clarifying this issue. Reply 211, from Geoff Clare, makes a subtle comment about "handling" vs. "delivery". I wish they would define these terms in the specification so that confusion like this could be avoided.
Updated by Ryan Zezeski about 8 years ago
I am trying to close this issue but I don't see the option. Perhaps I lost those rights? I'm not sure.
Updated by Ryan Zezeski about 8 years ago
- Priority changed from Normal to Low
- Difficulty changed from Medium to Bite-size
Updated by Ryan Zezeski about 8 years ago
- Status changed from In Progress to Feedback
Updated by Ryan Zezeski about 8 years ago
- Status changed from Feedback to Rejected