I have a C program that sets a handler for SIGALRM, but it doesn't get called. sigprocmask() shows that SIGALRM is blocked when the program starts.
Evidently it is inheriting a signal mask that blocks it, from some ancestor process. The most likely candidate seems to be something in XQuartz, because:
- it happens when I'm using in my login shell (bash) in an xterm
- it doesn't happen if I run csh, and then run the program from there (presumably csh clears the mask)
- it doesn't happen if I run csh, and from csh run bash, and then run the program from there (so it isn't bash setting it)
- it doesn't happen if I run it from my login shell (bash) in Terminal.app
- it doesn't happen if I ssh to localhost and run it from there
I'm running Quartz 2.8.5.
-- Richard
The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336. Is e buidheann carthannais a th’ ann an Oilthigh Dhùn Èideann, clàraichte an Alba, àireamh clàraidh SC005336.