Re: Questions on adaptive mutexes and trylock

2012-05-09 Thread jb
Joe Marcus Clarke  marcuscom.com> writes:

> 
> The newest GLib (as well as PHP APC) is starting to use adaptive mutexes
> in their code.  When a mutex type is set to adaptive and you try to call
> pthread_mutex_trylock() on it, you get back an EINVAL.  Is this a bug,
> or should this really be happening (the code clearly indicates adaptive
> mutexes are not handled by trylock)?

Adaptive mutex is a combination of a mutex and a spinlock with adjusted
duration of spinning ("trylocking").

The primary purpose of a spinlock is to protect portions of the code that
implement other synchronization primitives such as a mutex, etc.

The pthread_mutex_trylock() attempts to acquire a lock on a mutex.

It follows it is proper to deny direct access to (adaptive) mutex by
pthread_mutex_trylock().
 
> I imagine Linux is not doing this since the code doesn't abort on Linux
> as it does on FreeBSD.  Should we be silently allowing trylock to
> perform a no-op on adaptive mutexes, or should we be handling adaptive
> mutexes with trylock?  Thanks.

I do not know why Linux handles it the way it does.

jb


___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"


Questions on adaptive mutexes and trylock

2012-05-09 Thread Joe Marcus Clarke
The newest GLib (as well as PHP APC) is starting to use adaptive mutexes
in their code.  When a mutex type is set to adaptive and you try to call
pthread_mutex_trylock() on it, you get back an EINVAL.  Is this a bug,
or should this really be happening (the code clearly indicates adaptive
mutexes are not handled by trylock)?

I imagine Linux is not doing this since the code doesn't abort on Linux
as it does on FreeBSD.  Should we be silently allowing trylock to
perform a no-op on adaptive mutexes, or should we be handling adaptive
mutexes with trylock?  Thanks.

Joe

-- 
PGP Key : http://www.marcuscom.com/pgp.asc
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"