On Mon, 6 Sep 2004 15:12:08 -0700, Pascal Hofstee <[EMAIL PROTECTED]> 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 ... > > http://bugzilla.gnome.org/show_bug.cgi?id=152009 > > 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 > (http://lists.freebsd.org/pipermail/freebsd-threads/2004-January/001539.html) > > 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. > > This Seems to be the current implementation of both libpthread as well > as libthr ... with libc_r being the sole exception. > > The pthread_mutex_trylock manpage however does not reflect this actual > implementation and only mentions EBUSY and EINVAL. > > I was wondering assuming the implementation is actually correct if > this could be rectified in the pthread_mutex_trylock manpage ... and > if my assumption is wrong if the implementation could be changed to > reflect the manpage. > > In the former case i will have to bug the glib-devs to change the > implementation of their pthread_mutex_trylock wrapper ... to also > check for EDEADLK.
I am hereby including an updated /usr/ports/devel/glib20/files/patch-gthread_gthread-posix.c that includes the additional check for EDEADLK besides EBUSY in glib's g_mutex_trylock_posix_impl function. With this fix applied to my installation of glib beep-media-player now works as expected with libpthread, and this is very likely to resolve similar behaviour with other ports that try to use glib's threading functions. I CC-ed glib20 port-maintainer ([EMAIL PROTECTED]) in the hope this (or appropriate alternative) fix makes it in time for 5.3-RELEASE. -- Pascal Hofstee
patch-gthread_gthread-posix.c
Description: Binary data
_______________________________________________ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"