[I'm resending this because it bounced on Tuesday, due to the recent c-l.net troubles. Apologies if you get it twice. In the meantime I committed Helmut's patch to abcl.]
On Tue, 27 Jun 2006, Helmut Eller wrote:
- Andras Simon [2006-06-27 12:03+0200] writes:
Anyway, I'd be grateful for any hints on how to start debugging this.
At the lisp side we create a thread which periodically flushes some output streams. We do this so that any buffered output shows up on the Emacs side only after a short delay.
We could work around the problem with (:write-string "") in our code, if we test for empty strings. But the real problem seems to be that ABCL's SlimeOutputStream writes the buffered text, but doesn't clear the buffer afterwards. The following patch might be more appropriate:
--- SlimeOutputStream.java.orig 2006-06-27 18:47:43.000000000 +0200 +++ SlimeOutputStream.java 2006-06-27 19:48:44.000000000 +0200 @@ -105,11 +105,12 @@
public void _finishOutput() throws ConditionThrowable {
try {
LispThread.currentThread().execute(f, new SimpleString(stringWriter.toString()));
- super._finishOutput ();
- if (stringWriter.getBuffer().length() > 0) {
String s = stringWriter.toString();
stringWriter.getBuffer().setLength(0);
LispThread.currentThread().execute(f, new SimpleString(s)); }
catch (Throwable t) {}
super._finishOutput();
}
public String toString()
This does the trick! Thanks, Helmut!
Andras