[slime-devel] Re: interrupt and multiple processes
Luke Gorrie
luke at bluetail.com
Thu Jan 8 23:51:00 UTC 2004
Hi Gary,
Thanks for the nice description of how threading works.
> Asynchronous signals tend not to carry much information; it's not clear
> that we could use them to implement IPC requests that asked another
> OS process to interrupt a specific thread. I'm not sure what kind
> of IPC mechanisms SWANK/SLIME already provide that might deal with
> the "OS process as a whole", but the lisp side of it could just involve
> a thread that listens for IPC requests over a socket that's created
> when SLIME first starts the lisp OS process. Or something.
>
> (defvar *slime-control-socket* ... "created when SLIME starts the OS process")
This seems likely the way to go. With the "socket per thread" plan we
already need a control channel so that a Lisp thread hitting the
debugger can ask Emacs to open a connection (Emacs can't portably
accept incoming ones). Hopefully we can kill two birds with one stone.
It's interesting trying to make sure that designs work with
single-threaded, single-threaded+SERVE-EVENT, and multithreaded. In
this case I think it's simple and we'll only use a control connection
in the multithreaded case.
-Luke
More information about the slime-devel
mailing list