[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GOOPS method cache locking bug?
From: |
Andreas Rottmann |
Subject: |
Re: GOOPS method cache locking bug? |
Date: |
20 Apr 2003 21:40:46 +0200 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 |
[meta] I wonder wether this thread fits -user or -devel better?
Andreas Rottmann <address@hidden> writes:
[snip]
> It seems the GOOPS method cache should use a recursive mutex, but
> doesn't. I'll try to patch it too use a recursive mutex and then see
> if that fixes it.
>
Hmm, it the replacing make-mutex with make-fair-mutex in goops.c leads
to infinite recursion, so the problem is not that a non-recursive
mutex is used, but that the recursion occurs in the first place.
However, I found an inconsitency in the docs (in threads.c) for the
make-mutex procedure; it says Guile mutexes are always recursive:
Locking a mutex that a thread already owns will succeed right away
and will not block the thread. That is, Guile's mutexes are
@emph{recursive}.
Nevertheless, when doing
(let ((m (make-mutex)))
(lock-mutex m)
(lock-mutex m))
at the guile prompt, I get a deadlock.
Regards, Andy
--
Andreas Rottmann | address@hidden | address@hidden | address@hidden
http://www.8ung.at/rotty | GnuPG Key: http://www.8ung.at/rotty/gpg.asc
Fingerprint | DFB4 4EB4 78A4 5EEE 6219 F228 F92F CFC5 01FD 5B62
Make free software, not war!