(defun enable-interrupt (signal handler)
(declare (type (or function fixnum (member :default :ignore)) handler))
+ (/show0 "enable-interrupt")
(without-gcing
(let ((result (install-handler signal
(case handler
;;; SIGINT in --disable-debugger mode will cleanly terminate the system
;;; (by respecting the *DEBUGGER-HOOK* established in that mode).
(defun sigint-%break (format-string &rest format-arguments)
+ #!+sb-thread
+ (let ((foreground-thread (sb!thread::foreground-thread)))
+ (if (eql foreground-thread (sb!thread:current-thread-id))
+ (apply #'%break 'sigint format-string format-arguments)
+ (sb!thread:interrupt-thread
+ foreground-thread
+ (lambda () (apply #'%break 'sigint format-string format-arguments)))))
+ #!-sb-thread
(apply #'%break 'sigint format-string format-arguments))
(eval-when (:compile-toplevel :execute)
(defun sigquit-handler (signal code context)
(declare (ignore signal code context))
- (throw 'sb!impl::toplevel-catcher nil))
+ (throw 'toplevel-catcher nil))
(defun sb!kernel:signal-cold-init-or-reinit ()
#!+sb-doc