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
Copyright © 2010-2024 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout