[slime-devel] Daily ChangeLog diff

Nikodemus Siivola nikodemus at random-state.net
Sun May 13 19:58:17 UTC 2012


On 13 May 2012 19:58, Helmut Eller <heller at common-lisp.net> wrote:

> What should not be used: WITH-DEADLINE or WITH-WORLD-LOCK?  Obviously

WITH-DEADLINE should be used, IMO. I don't quite follow what you
consider to be the problem with it.

The reason grabbing WITH-WORLD-LOCK is bad is because doing that
creates new places where things can deadlock.

When we finally get rid of the world lock around (or hack CLOS
dispatch to use evaluated functions when the compiler is taken), every
single place where world lock is grabbed is still a potential
deadlock: world lock is bad (like any other huge lock) not just
because it kilsl parallelism, but because reasoning about lock
ordering becomes essentially impossible. If a system has one lock lock
big enough that arbitrary code can run inside means that's bad but ...
survivable. If there are two or more such locks, then those locks
can't really have a proper ordering between them, and you get
deadlocks.

The second reason WITH-WORLD-LOCK is bad is that I'm trying get rid of
it by breaking it up into smaller locks. So swank-sbcl.lisp will need
more #+magic -- not terrible, but not ideal either.

Cheers,

 -- Nikodemus




More information about the slime-devel mailing list