From 84c126513a68dc127ca812ac9d30a579b815b1bd Mon Sep 17 00:00:00 2001 From: Thiemo Seufer Date: Sun, 19 Aug 2007 23:57:09 +0000 Subject: [PATCH] 1.0.8.37: Workaround (or bugfix?) for blocked SIGTRAP on SBCL/MIPS. --- src/code/interr.lisp | 8 ++++++++ version.lisp-expr | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/code/interr.lisp b/src/code/interr.lisp index 282e1df..fe81a1f 100644 --- a/src/code/interr.lisp +++ b/src/code/interr.lisp @@ -421,6 +421,14 @@ (multiple-value-bind (name sb!debug:*stack-top-hint*) (find-interrupted-name-and-frame) (/show0 "back from FIND-INTERRUPTED-NAME") + ;; Unblock trap signal here, we unwound the stack and can't return. + ;; FIXME: Should we not reset the _entire_ mask, but just + ;; restore it to the state before we got the condition? + ;; FIXME 2: Signals are currently unblocked in + ;; interrupt.c:internal_error before we do stack unwinding, can this + ;; introduce a race condition? + #!+(or linux mips) + (sb!unix::reset-signal-mask) (let ((fp (int-sap (sb!vm:context-register alien-context sb!vm::cfp-offset))) (handler (and (< -1 error-number (length *internal-errors*)) diff --git a/version.lisp-expr b/version.lisp-expr index 9f7de9a..32c7ef9 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"1.0.8.36" +"1.0.8.37" -- 1.7.10.4