[slime-devel] Re: detachtty + slime
Helmut Eller
e9626484 at stud3.tuwien.ac.at
Wed Apr 28 06:27:37 UTC 2004
"Steven E. Harris" <seharris at raytheon.com> writes:
> If the style is not :spawn, serve-connection will only be called
> once. Keeping the server socket open after that one connection gets
> serviced won't help any subsequent operations.
Are you sure? The current CVS version looks like this:
(defun setup-server (port announce-fn style dont-close)
(declare (type function announce-fn))
(let* ((socket (create-socket *loopback-interface* port))
(port (local-port socket)))
(funcall announce-fn port)
(ecase style
(:spawn
(spawn (lambda ()
(loop do (serve-connection socket :spawn dont-close)
while dont-close))
:name "Swank"))
((:fd-handler :sigio)
(add-fd-handler socket
(lambda ()
(serve-connection socket style dont-close))))
((nil)
(unwind-protect
(loop do (serve-connection socket style dont-close)
while dont-close)
(close-socket socket))))
port))
For style=NIL we loop and subsequent connections are served
sequentially. I install an fd-handler for both :sigio and
:fd-handler, because it didn't seems necessary to do signal driven io
on the server socket. I didn't test it extensively, but I fail to see
why this version can't handle multiple connections.
Helmut.
More information about the slime-devel
mailing list