pthread_spin_init(3)
NAME
- pthread_spin_init, pthread_spin_destroy - initialize or de
- stroy a spin
lock
LIBRARY
library ``libpthread'' library ``libthr''
SYNOPSIS
#include <pthread.h> int pthread_spin_init(pthread_spinlock_t *lock, int pshared); int pthread_spin_destroy(pthread_spinlock_t *lock);
DESCRIPTION
- The pthread_spin_init() function will initialize lock to an
- unlocked
state and allocate any resources necessary to begin using - it. If pshared
is set to PTHREAD_PROCESS_SHARED, any thread, whether be - longing to the
process in which the spinlock was created or not, that has - access to the
memory area where lock resides, can use lock. If it is set - to
PTHREAD_PROCESS_PRIVATE, it can only be used by threads - within the same
process. - The pthread_spin_destroy() function will destroy lock and
- release any
resources that may have been allocated on its behalf.
RETURN VALUES
- If successful, both pthread_spin_init() and
- pthread_spin_destroy() will
return zero. Otherwise, an error number will be returned to - indicate the
error. - Neither of these functions will return EINTR.
ERRORS
- The pthread_spin_init() and pthread_spin_destroy() functions
- will fail
if: - [EBUSY] An attempt to initialize or destroy lock
- while it is
- in use.
- [EINVAL] The value specified by lock is invalid.
- The pthread_spin_init() function will fail if:
- [EAGAIN] Insufficient resources, other than memo
- ry, to initial
- ize lock.
- [ENOMEM] Insufficient memory to initialize lock.
SEE ALSO
pthread_spin_lock(3), pthread_spin_unlock(3)
HISTORY
- The pthread_spin_init() and pthread_spin_destroy() functions
- first
appeared in library ``libpthread'' in FreeBSD 5.2, and in - library
``libthr'' in FreeBSD 5.3.
BUGS
- The implementation of pthread_spin_init() does not fully
- conform to IEEE
Std 1003.2 (``POSIX.2'') because the pshared argument is ig - nored in
library ``libthr'', and in library ``libpthread'' if any - value other than
PTHREAD_PROCESSES_PRIVATE is specified, it returns EINVAL. - BSD January 22, 2004