POSIX Spin Locks
Joel Sherrill
joel.sherrill at oarcorp.com
Thu Jul 20 16:18:12 UTC 2006
Hi,
I am looking at the POSIX spinlock specification and can't
see why it can't be implemented as some mutex variation.
Yes I understand the "test and set and poll if not available"
technique but the OpenGroup page doesn't require that behavior.
http://www.opengroup.org/onlinepubs/009695399/functions/pthread_spin_lock.html
====================================
The /pthread_spin_lock/() function shall lock the spin lock referenced
by /lock/. The calling thread shall acquire the lock if it is not held
by another thread. Otherwise, the thread shall spin (that is, shall not
return from the /pthread_spin_lock/() call) until the lock becomes
available. The results are undefined if the calling thread holds the
lock at the time the call is made. The /pthread_spin_trylock/() function
shall lock the spin lock referenced by /lock/ if it is not held by any
thread. Otherwise, the function shall fail.
====================================
From a user's perspective, a mutex lock does not return until the lock
becomes available.
RTEMS SuperCore mutexes are very efficient. I don't see the point of
not doing a simple implementation based upon SuperCore mutexes.
Any thoughts, comments, insights?
--joel
More information about the users
mailing list