|PTHREAD_SPIN_LOCK(3)||Linux Programmer's Manual||PTHREAD_SPIN_LOCK(3)|
int pthread_spin_lock(pthread_spinlock_t *lock); int pthread_spin_trylock(pthread_spinlock_t *lock); int pthread_spin_unlock(pthread_spinlock_t *lock);
Compile and link with -pthread.
_POSIX_C_SOURCE >= 200112L
Calling pthread_spin_lock() on a lock that is already held by the caller or a lock that has not been initialized with pthread_spin_init(3) results in undefined behavior.
The pthread_spin_trylock() function is like pthread_spin_lock(), except that if the spin lock referred to by lock is currently locked, then, instead of spinning, the call returns immediately with the error EBUSY.
The pthread_spin_unlock() function unlocks the spin lock referred to lock. If any threads are spinning on the lock, one of those threads will then acquire the lock.
Calling pthread_spin_unlock() on a lock that is not held by the caller results in undefined behavior.
- The system detected a deadlock condition.
pthread_spin_trylock() fails with the following errors:
- The spin lock is currently locked by another thread.
Carefully read NOTES in pthread_spin_init(3).