Gábor Melis mega@hotpop.com writes:
The behaviour of SBCL's threads is about to be changed wrt specials. Threads shall no longer inherit the values of specials from the parent. It will be quite similar to other threaded lisps in this regard.
Cool.
Light testing shows that everything works fine except typing
(sb-thread:make-thread (lambda () (break)))
at the repl does not bring up the debugger anymore. It's because install-debugger in swank.lisp does not set the *invoke-debugger-hook*:
(setq sb-ext:*invoke-debugger-hook* #'swank-debugger-hook)
When SWANK:*GLOBAL-DEBUGGER* is T (the default) then SWANK::INSTALL-DEBUGGER setq's *DEBUGGER-HOOK* globally so that Emacs will be the default debugger for most errors.
It would be good to make INSTALL-DEBUGGER call a backend function so that the SBCL backend can set *INVOKE-DEBUGGER-HOOK* too and thus handle calls to BREAK.