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