[slime-devel] slime has broken cmucl mp

Madhu enometh at meer.net
Thu Oct 30 17:48:07 UTC 2008


It used to be possible to run multiprocessing servers like a webserver
which coexisted with slime.  This is no longer possible With current CVS
slime, swank's WAIT-FOR-EVENT blocks all other processes from handling
FD events

There is a simple test case, but here is a more realistic one: I'm
attaching a program "t2.lisp" which seeks to illustrates the
problem. This is a simple program which listens on a port [8128 by
default] and prints a message to clients which connect to it.

-- In a bare lisp 

* (load "t2.lisp")

LISTEN-FOR-CONNECTIONS creates a process which listens at port 8128.

-- run `telnet localhost 8128' from a shell, a few times.

This will result in the bogus service printing a message to the telnet
client, as expected.

-- load slime in the lisp, and listen at port 4005

* (load "/path/to/swank-loader.lisp")
* (swank-loader::init)
* (swank::setup-server 4005 #'print nil nil (swank::find-external-format "latin-1-unix"))

-- Connect to the lisp from emacs using M-x slime-connect localhost 4005

-- run `telnet localhost 8128' from a shell.

This hangs until the slime connection exits.

This is a serious problem, and exposes many issues with SLIME's design.
--
Madhu

-------------- next part --------------
A non-text attachment was scrubbed...
Name: t2.lisp
Type: application/emacs-lisp
Size: 2200 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/slime-devel/attachments/20081030/07ff955e/attachment.bin>


More information about the slime-devel mailing list