pthread_spin_lock()

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.
EDEADLK
The calling thread already holds the lock in spinner.
EINVAL
The spinner object is invalid.

Classification:

POSIX 1003.1

Safety:
Cancellation pointNo
Interrupt handlerNo
Signal handlerYes
ThreadYes

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 and may block.

Page updated: