Marco Baringer mb@bese.it writes:
connecting to a remote (as in slime-connect) cmucl lisp with the *communication-style* set to :sigio. a thread signals an error and i get an sldb debugger in emacs. however none of the restarts actually do anything.
Thanks, I've reproduced. The Lisp doesn't have to be remote. I'll check this out tonight. Debugging our thread support on CMUCL and LispWorks is currently on top of my todo list.
And from the other mail:
;;; now go and connect emacs to this lisp
- (with-simple-restart (test "Can't call me.") (swank::spawn (lambda () (error "ERR"))))
notice how the sldb buffer doesn't show the test restart. does *sldb-restarts* need some special handling when using :SIGIO?
This looks correct to me. The restart exists on the stack of the parent thread and not the thread that's hitting the debugger. To see the restart you'd need to do:
(swank::spawn (lambda () (with-simple-restart (test "Can't call me.") (error "ERR"))))
In this case we do see the restart in SLDB but get the other problem of being unable to invoke it (in :sigio at least).
-Luke