Re: http://permalink.gmane.org/gmane.lisp.slime.devel/6368
I have tracked down the problem: When the stream to emacs is closed, SWANK::DECODE-MESSAGE catches an end-of-file and throws a SWANK:STREAM-ERROR. SWANK::SIMPLE-SERVE-EVENTS catches this (via SWANK::WITH-READER-ERROR-HANDLER) Now there are several code paths but all result in recursive errors which result from writing about errors on writing to a closed stream to a closed stream.
- either by invoking the debugger (debugger-hook is slime debugger) - swank::close-connection writes to the closed-stream by calling finish-output
There are several ways to fix this problem. At the least the finish-output calls should be enclosed in ignore-error forms. Ideally the current headache inducing stream design would be redesigned with sanity.
Which patch would you prefer?
-- Madhu