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:

POSIX 1003.1

Safety:
Cancellation pointNo
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.

Page updated: