,@body)))
(defun invoke-interruption (function)
- (with-interrupt-bindings
- (without-interrupts
+ (without-interrupts
+ (with-interrupt-bindings
;; Reset signal mask: the C-side handler has blocked all
;; deferrable interrupts before arranging return to lisp. This is
;; safe because we can't get a pending interrupt before we unblock
;; FIXME: Should we not reset the _entire_ mask, but just
;; restore it to the state before we got the interrupt?
(reset-signal-mask)
- (allow-with-interrupts
- (let ((sb!debug:*stack-top-hint* (nth-value 1 (sb!kernel:find-interrupted-name-and-frame))))
- (funcall function))))))
+ (let ((sb!debug:*stack-top-hint* (nth-value 1 (sb!kernel:find-interrupted-name-and-frame))))
+ (allow-with-interrupts (funcall function))))))
(defmacro in-interruption ((&key) &body body)
#!+sb-doc
(declare (type (or function fixnum (member :default :ignore)) handler))
(/show0 "enable-interrupt")
(flet ((run-handler (&rest args)
+ (declare (dynamic-extent args))
(in-interruption ()
(apply handler args))))
(without-gcing
;;; 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.16.38"
+"1.0.16.39"