[slime-devel] [slime-cvs] CVS slime

Nikodemus Siivola nikodemus at random-state.net
Thu Dec 15 13:20:47 UTC 2011


On 10 December 2011 14:34, CVS User heller <heller at common-lisp.net> wrote:

> * swank.lisp (auto-flush-loop): Don't use call-with-io-timeout.
> Removing it had no effect on the number of failed tests.  If you
> want it back, first create a test case to demonstrate the problem.

This is bastard to test, honestly. To test it we need to catch the
system in a very transient state. One such state that can occur in
SBCL looks like this:

User thread T1: compiles stuff, grabs a system internal lock X...

Auto flush thread T2: wants to flush, grabs lock on the stream. Due to
methods added to gray streams by thread T1 the method cache has been
invalidated, and in trying to update it tries to grab the same lock X
-- and goes to sleep on it.

T1: generates a compiler note, tries to write it to the stream locked
by auto-flush threads --> deadlock.

While the SBCL side of this problem is going to get a lot better
soonish, I'm still sad to see that timeout go away.

Cheers,

 -- Nikodemus




More information about the slime-devel mailing list