pthread_mutex_trylock and glib-2
stijn at win.tue.nl
Mon Sep 6 21:58:11 PDT 2004
thanks for digging at this!
On Mon, Sep 06, 2004 at 03:12:08PM -0700, Pascal Hofstee wrote:
> After a few hours of digging through both the glib-2 as well as the
> beep-media-player sources i finally managed to figure out why
> beep-media-player apprently crashes on startup when using libpthread,
> but not when using libc_r.
> i filed a bugreport against this problem on bugzilla.gnome.org ... in
> the hope to get some feedback from glib-developers ...
> The problem is with the actual return value of pthread_mutex_trylock
> returning EDEADLK instead of EBUSY.
> from what i have been able to glance from this previous discussion
> regarding this particular subject
> pthread_mutex_trylock should behave identical to pthread_mutex_lock
> except return immediately in case of a blocking mutex, which would
> suggest EDEADLK as a possible return value.
Well, according to
(linked from the discussion above), I would read this:
The pthread_mutex_trylock() function shall fail if:
The mutex could not be acquired because it was already locked.
The pthread_mutex_lock() function may fail if:
A deadlock condition was detected or the current thread already owns the mutex.
as the glib developers apparently did -- namely that pthread_mutex_trylock
cannot return EDEADLK, only EBUSY. The fact that it is the current thread
that has already locked the mutex is only required to be detected by the
pthread_mutex_lock function. In other words, I agree with Mike Makonnen
in your quoted e-mail, but apparently the implementation does not.
In any case, modifying glib to also check for EDEADLK would probably be
I wish there was a knob on the TV to turn up the intelligence. There's a knob
called `brightness', but it doesn't work."
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20040907/46f6ecf1/attachment.bin
More information about the freebsd-hackers