NAME
pthread_spin_unlock —
unlock a spin lock object
SYNOPSIS
#include
<pthread.h>
int pthread_spin_unlock(pthread_spinlock_t *lock);
DESCRIPTION
The pthread_spin_unlock () function shall
release the spin lock referenced by lock which was locked
via the pthread_spin_lock(3) or
pthread_spin_trylock(3) functions.
The results are undefined if the lock is not held by the calling thread.
If there are threads spinning on the lock when
pthread_spin_unlock () is called, the lock becomes
available and an unspecified spinning thread shall acquire the lock.
The results are undefined if this function is called with an uninitialized thread spin lock.
RETURN VALUE
Upon successful completion, the
pthread_spin_unlock () function shall return zero;
otherwise, an error number shall be returned to indicate the error.
ERRORS
This function shall not return an error code of [EINTR].
EXAMPLES
None.
APPLICATION USAGE
None.
RATIONALE
If an implementation detects that the value specified by the
lock argument to
pthread_spin_unlock () does not refer to an
initialized spin lock object, it is recommended that the function should
fail and report an [EINVAL] error.
If an implementation detects that the value specified by the
lock argument to
pthread_spin_unlock () refers to a spin lock object
for which the current thread does not hold the lock, it is recommended that
the function should fail and report an [EPERM] error.
FUTURE DIRECTIONS
None.
SEE ALSO
pthread_spin_destroy(3), pthread_spin_lock(3)
XBD V1_chap04(7), <pthread.h>
CHANGE HISTORY
First released in Issue 6. Derived from IEEE Std 1003.1j-2000.
In the SYNOPSIS, the inclusion of <sys/types.h> is no longer required.
Issue 7
The pthread_spin_unlock () function is
moved from the Spin Locks option to the Base.
The [EINVAL] error for an uninitialized spin lock object is removed; this condition results in undefined behavior.
The [EPERM] error for a spin lock object for which the current thread does not hold the lock is removed; this condition results in undefined behavior.