[net.unix-wizards] catching signals with an 11.

dove@mit-dspg@sri-unix (07/31/82)

Date: 29 Jun 1982 15:00:49-EDT
I sent mail some months ago about this.  If you write a program that uses
two signals for catching (like alarm and int or int and quit) you can
encounter situations where they come in together and only one gets handled
by the appropriate user routine.  The other just gets reset to SIG_DFL
and the next time you send it, the process dies.

Make a program that tries catching quit and int and printing which it was.
Then bang on both keys in sync.  After a while the process gets killed.

I changed my kernel to only attempt to process one signal per entry into
the system.  Before it appeared to try to stack up a bunch for the user to
handle once you left system state, and that scheme fails for reasons that
elude me.  Now that I only handle ona at a time, I have no spurious signal
loss problems.