incorrect realtime signal delivery
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.
Updated by Ryan Zezeski over 6 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):
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.