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