pthread_spin_lock()
QNX SDP8.0C Library ReferenceAPIDeveloper
Lock a thread spinlock
Synopsis:
#include <pthread.h>
int pthread_spin_lock( pthread_spinlock_t * spinner );
Arguments:
- spinner
- A pointer to the pthread_spinlock_t object that you want to lock.
Library:
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
Description:
The pthread_spin_lock() function locks the thread spinlock specified by spinner. If spinner isn't immediately available, pthread_spin_lock() blocks until spinner can be locked.
If a thread attempts to lock a spinlock that's already locked via pthread_spin_lock() or pthread_spin_trylock(), the thread returns EDEADLK.
Returns:
- EOK
- Success.
- EAGAIN
- Insufficient resources available to lock spinner.
- EDEADLK
- The calling thread already holds spinners lock.
- EINVAL
- Invalid pthread_spinlock_t object spinner.
Classification:
Safety: | |
---|---|
Cancellation point | No |
Signal handler | Yes |
Thread | Yes |
Caveats:
You may not get the desired behavior from this function because the current implementation is through mutexes. In the uncontested case, this gives the same behavior as spinlocks. In the contested case, this function makes a kernel call.
Page updated: