[slime-devel] slime & sbcl event-loop issues

xristos xristos at suspicious.org
Sun Feb 15 05:02:06 UTC 2009


I am trying to use serve-event to interactively
monitor network protocols but i'm facing some
issues when trying to work on the slime repl:

1) On threaded sbcl + :spawn swank comm style,
serve-event does not run at all on the repl thread
(the thread seems to be blocked on a call to condition-wait,
in receive-if/swank-sbcl.lisp)

I tried modifying receive-if so that it serves all pending
events before acquiring the lock but i guess this could
prove to be problematic.

2) Also tried scheduling a timer to interrupt *current-thread*
(repl thread) and run serve-all-events
periodically which works but i guess this is even worse than 1)
and could explode pretty easy.

3) Using :fd-handler (and therefore a single thread)
it seems that slime completely takes over the event loop
and does not allow other handlers to run unless there is
input coming from the repl. (Blocking on read-sequence ?)

I could give up :spawn and work with :fd-handler comm style,
if slime would let other handlers run and not block without
configurable timeout at least. Is this feasible ? Where would
one start looking in order to implement it ?

Chris




More information about the slime-devel mailing list