pthread_spin_init , pthread_spin_destroy
- initialize or destroy a spin lock
LIBRARY
Lb libpthread
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
Fa lock
to an unlocked state and
allocate any resources necessary to begin using it.
If
Fa pshared
is set to
PTHREAD_PROCESS_SHARED
any thread,
whether belonging to the process in which the spinlock was created or not,
that has access to the memory area where
Fa lock
resides, can use
Fa 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
Fa 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
Er EINTR .
ERRORS
The
pthread_spin_init ();
and
pthread_spin_destroy ();
functions will fail if:
Bq Er EBUSY
An attempt to initialize or destroy
Fa lock
while it is in use.
Bq Er EINVAL
The value specified by
Fa lock
is invalid.
The
pthread_spin_init ();
function will fail if:
Bq Er EAGAIN
Insufficient resources,
other than memory,
to initialize
Fa lock .
Bq Er ENOMEM
Insufficient memory to initialize
Fa lock .
SEE ALSO
pthread_spin_lock3,
pthread_spin_unlock3
HISTORY
The
pthread_spin_init ();
and
pthread_spin_destroy ();
functions first appeared in
Lb libkse
in
Fx 5.2 ,
and in
Lb libthr
in
Fx 5.3 .
BUGS
The implementation of
pthread_spin_init ();
does not fully conform to
St -p1003.2
because the
Fa pshared
argument is ignored in
Lb libthr ,
and in
Lb libkse
if any value other than
PTHREAD_PROCESSES_PRIVATE
is specified, it returns
Er EINVAL .