guile-devel
[Top][All Lists]
Advanced

[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!




reply via email to

[Prev in Thread] Current Thread [Next in Thread]