pthread_spin_lock(3) Library Functions Manual pthread_spin_lock(3) NAME pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock - lock and unlock a spin lock LIBRARY POSIX threads library (libpthread, -lpthread) SYNOPSIS #include <pthread.h> int pthread_spin_lock(pthread_spinlock_t *lock); int pthread_spin_trylock(pthread_spinlock_t *lock); int pthread_spin_unlock(pthread_spinlock_t *lock); Feature Test Macro Requirements for glibc (see feature_test_macros(7)): pthread_spin_lock(), pthread_spin_trylock(): _POSIX_C_SOURCE >= 200112L DESCRIPTION The pthread_spin_lock() function locks the spin lock referred to by lock. If the spin lock is currently unlocked, the calling thread ac- quires the lock immediately. If the spin lock is currently locked by another thread, the calling thread spins, testing the lock until it be- comes available, at which point the calling thread acquires the lock. 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. RETURN VALUE On success, these functions return zero. On failure, they return an error number. ERRORS pthread_spin_lock() may fail with the following errors: EDEADLOCK The system detected a deadlock condition. pthread_spin_trylock() fails with the following errors: EBUSY The spin lock is currently locked by another thread. VERSIONS These functions were added in glibc 2.2. STANDARDS POSIX.1-2001. NOTES Applying any of the functions described on this page to an uninitial- ized spin lock results in undefined behavior. Carefully read NOTES in pthread_spin_init(3). SEE ALSO pthread_spin_destroy(3), pthread_spin_init(3), pthreads(7) Linux man-pages 6.03 2022-12-04 pthread_spin_lock(3)
Generated by dwww version 1.15 on Thu Jun 27 09:30:17 CEST 2024.