* Lynn Quam [2005-09-15 02:53+0200] writes:
Is it possible to run SLIME with Allegro using communication-style = :sigio rather than :spawn?
No, at least it's not implemented.
I have a custom REPL loop which handles tcl/tk events in addition to input from *standard-input*. This work fine with SLIME and CMUCL with communication-style = :sigio.
I have encountered difficulties implementing event-handling for tcl/tk with SLIME using communication-style = :spawn. One problem is that (method stream-listen slime-input-stream) on Allegro just checks if the buffer contains characters. It does not attempt to ask the socket is there are characters available. This does not appear to be a problem in CMUCL.
With communication-style = :spawn there's one thread which just reads input from the socket (and after some frobbing) inserts the input into the stream buffer, so that stream-listen should see it whenever there is some input.
My guess is that the Tcl interpreter somehow interferes with Allegros thread scheduler and that the above mentioned reader thread gets not executed (often enough). Perhaps you can execute something like mp:process-allow-schedule before you call stream-listen?