[slim-vim] More details on the socket crash bug
Brad Beveridge
brad.beveridge at gmail.com
Sun Jun 11 20:44:34 CDT 2006
On 6/11/06, Brad Beveridge <brad.beveridge at gmail.com> wrote:
> A quick recap - the bug is this: When you evaluate a form on Swank it
> send back a reply via a socket. In Slim-vim we listen on that socket
> and print some data out to a Vim buffer. Eventually this crashes and
> leaves you with a broken console (keystrokes don't appear). I can
> blindly issue (cl-user::quit) and get to a bash prompt, I then need to
> "reset" the terminal.
>
> I spent today trying to reproduce the bug (see attached files for my
> attempt). Serverstream just listens on a socket and prints data to a
> buffer, test.lisp sends data to serverstream. I run these files in
> different Vims so that I can have 2 instances of ECL.
>
> I could not break this simple configuration, TEST can happily stream
> loads of data to SERVERSTREAM, which dutifully puts it out to a Vim
> buffer. This implies to me writing to a Vim buffer from the Async
> handler is completely fine.
>
> So I had a bit of a brain storm and thought about what is different
> between my test and Swank. Well, the test is kinda one way, Swank
> starts comms in Vim and responds to them in Vim. So I made the
> SERVERSTREAM also echo back any socket data to the TEST client. Whoa!
I have just confirmed that I do not need to actually output to the vim
buffer in the input-listener callback. The callback can be as simple
as
(defun process-data ()
(loop while (listen *stream*) do
(read-line *stream*)))
Cheers
Brad
More information about the slim-vim
mailing list