The Open Group Base Specifications Issue 7
IEEE Std 1003.1-2008, 2016 Edition
Copyright © 2001-2016 The IEEE and The Open Group

#### 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() or pthread_spin_trylock() 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].

The following sections are informative.

#### 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, pthread_spin_lock

> XBD Memory Synchronization, <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.

End of informative text.

return to top of page

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
Copyright © 2001-2016 The IEEE and The Open Group, All Rights Reserved
[ Main Index | XBD | XSH | XCU | XRAT ]