* xristos [2009-02-15 06:02+0100] writes:
[...]
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 ?
I'm not sure what you need. Usually, the "initial" thread blocks in SB-SYS:WAIT-UNTIL-FD-USABLE which calls SERVE-EVENT with both :spawn and :fd-handler. At least that used to be so.
With :fd-handler style, SLIME registers a fd-handler but doesn't call SERVE-EVENTS directly. SERVE-EVENTS is called by the initial thread which waits for input on *standard-input* in the *inferior-lisp* buffer. SLIME blocks when the debugger needs to waits for input, but that can only happen after the fd-handler is called (or after an interrupt, but let's ignore that). If you actually need nested event-loops things get complicated quickly, especially if interrupts are involved.
With :spawn style SLIME doesn't touch SERVE-EVENTS.
Is there a problem if you run the event-loop in your own thread?
Helmut.