Nikodemus Siivola wrote:
> On 8/4/07, Thiemo Seufer <ths@...> wrote:
> > Hello All,
> > I finally found one cause of instability for SBCL/MIPS: We enter
> > interrupt_internal_error via a signal handler, but then go back
> > to Lisp, and never leave the handler again (from a C perspective).
> > As a result, the "unblockable" SIGTRAP is blocked, so SBCL aborts
> > on the next trap it encounters. I figure other Linux architectures
> > have different effective semantics for some reason.
> > The appended patch makes error handling work on SBCL/MIPS, but it
> > is IMHO a horrible hack. Better idas and tests on other platforms
> > are certainly welcome.
> Extending arrange_return_to_lisp_function to accept arguments is one
I had second thoughts about unblocking the signal before the stack
unwinding happens, I couldn't convince myself it won't open a race
So I committed a different patch (22.214.171.124) which does the unblocking
=66rom Lisp. It has some precedent in other parts of SBCL, and a warning
that it may unblock too much, so I made it conditional (or linux mips).