alternate stacks for signal handlers

Stephen Weeks sweeks@intertrust.com
Tue, 25 Jul 2000 16:34:27 -0700 (PDT)


> Contrary
> to the comment in machine.h, this method isn't entirely correct.  After
> some playing around, I figured out that the crucial difference is that
> GC_switchToThread did not perform the atomicEnd operation s->canHandle--.  
> So, everything got screwed up because the GC always thought it was already
> handling a thread operation.

Not surprising.  I think the right fix is to get rid of
Thread_switchTo1 in machine.h and get rid of GC_switchToThread.  I
don't want to think about keeping the two separate pieces of code in
sync.

> Just for kicks, I tried turning off the alternate signal stack handler to
> see what happens.  Stuff still seems to work, but then again, the only
> example program I've got to check signal handling is the signals.sml
> file.

A couple of other regression tests have signals as well.  Just to make 
sure you have the latest version of the tests, I put one at 
http://www.star-lab.com/sweeks/regression.tgz.  You should also let me 
know of any new tests you've added.