[slime-devel] Re: eval-string bug?
Helmut Eller
e9626484 at stud3.tuwien.ac.at
Sun Jan 25 19:19:20 UTC 2004
Luke Gorrie <luke at bluetail.com> writes:
> For read-string maybe the solution is for Emacs to just send
> (repl-input <string>) and let Lisp decide what to do with it.
Yes, that's probably good enough.
>
> I also found an exciting new class of dastardly hard bug :-) example:
>
> Make async request
> Make sync request A
> Async reply arrives, in continuation:
> Make sync request B
> Result of A arrives and is thrown up the stack past B's handler
>
> Can involve a lot of "what happened to A?" head-scratching :-)
>
> With the old protocol we didn't have this problem since it was illegal
> to make two requests in a row. On the other hand, this wasn't as hard
> to debug as an `activate'-related bug in the state machine once, and I
> _think_ it can be solved by the rule "don't make synchronous requests
> from asynchronous continuations".
How about this rule: "RPCs should be properly nested"? So a
sequence
request A
request B
reply A
reply B
would be illegal. This would be easy to check (with a stack) and is
probably a requirement for synchronous RPCs. The downside of this
rule is, is that it looks a lot like what we had before :-(
> Currently the "interesting" bit is figuring out what slime-sync,
> slime-busy-p, etc are supposed to do, or how to change their
> callers. This is the chance to make it compatible with out-of-order
> (e.g. thread-per-request) operation.
Have you any plans for how to debug in the thread-per-request world?
Helmut.
More information about the slime-devel
mailing list