I normally use C-x C-e to execute a form. Since I use either SBCL (with threading enabled) or ACL, slime creates a new thread to execute the form (rather than executing the form in the REPL thread).
Occasionally, I need to interrupt or debug the execution. I know that I can use slime-list-threads to see the list of threads. How do I determine which thread is the one that is executing my form? How do I interrupt that thread safely (so that the stack is unwound cleanly)?
Hi Alistair,
I use SLIME and Allegro CL and the thread in question is named "worker" in *inferior-lisp*. I don't know if this is true across all platforms that are SLIMy.
On Jul 4, 2008, at 4:57 PM, alistair gee wrote:
I normally use C-x C-e to execute a form. Since I use either SBCL (with threading enabled) or ACL, slime creates a new thread to execute the form (rather than executing the form in the REPL thread).
Occasionally, I need to interrupt or debug the execution. I know that I can use slime-list-threads to see the list of threads. How do I determine which thread is the one that is executing my form? How do I interrupt that thread safely (so that the stack is unwound cleanly)?
slime-devel site list slime-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/slime-devel
-- Gary Warren King, metabang.com Cell: (413) 559 8738 Fax: (206) 338-4052 gwkkwg on Skype * garethsan on AIM
alistair gee alistair.gee@gmail.com writes:
I normally use C-x C-e to execute a form. Since I use either SBCL (with threading enabled) or ACL, slime creates a new thread to execute the form (rather than executing the form in the REPL thread).
Occasionally, I need to interrupt or debug the execution. I know that I can use slime-list-threads to see the list of threads. How do I determine which thread is the one that is executing my form? How do I interrupt that thread safely (so that the stack is unwound cleanly)?
In HEAD, `slime-list-threads' will now display a short summary of the request that's currently executed in a thread created by SWANK.
It's currently only supported by the SBCL backend, as I don't use ACL. If you want it to also be available for ACL, you have to implement SWANK-BACKEND:THREAD-DESCRIPTION and SET-THREAD-DESCRIPTION in swank-allegro.lisp. (Not difficult, and very welcomed!)
-T.