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.