Lock a thread spinlock
#include <pthread.h> int pthread_spin_lock( pthread_spinlock_t * spinner );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
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.
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | Yes |
Thread | Yes |
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.
pthread_spin_destroy(), pthread_spin_init(), pthread_spin_trylock(), pthread_spin_unlock()