[tbnl-devel] Re: problem with the example
Edi Weitz
edi at agharta.de
Sat Mar 19 19:52:34 UTC 2005
On Sat, 19 Mar 2005 19:50:22 +0100, Sergio Garcia <sergio.garcia at gmail.com> wrote:
> I upgraded to a 2.6 kernel, and the error message stopped. However,
> the problem changed. Now, the browser just freezed, and in the sbcl
> REPL I got:
>
> WARNING:
> recursive lock attempt #S(SB-THREAD:MUTEX
> :NAME "session-data-lock"
> :LOCK 0
> :DATA NIL
> :VALUE 5041)
>
> I had a look at the code of session, and it seems to me that
> setting-f a session-value when a session has not been created,
> creates a nested "with-lock-held" on a same object by calling
> start-session. I just put a start-session at the beggining of the
> session test, and it seems to work fine now. Is this right?
The analysis is right, but the cure isn't. (Well, in this particular
case it probably is.) The problem is that parts of TBNL assume that
locks /can/ be nested which is the case for CMUCL, LW, and AllegroCL.
You might want to ask on the SBCL mailing list how to get locks that
can be nested or alternatively ask Kevin Rosenberg to patch KMRCL.
The easiest way is to switch to CMUCL, though... :)
Cheers,
Edi.
More information about the Tbnl-devel
mailing list