pthread_once_t
Fa once_control
= PTHREAD_ONCE_INIT;
int
pthread_once (pthread_once_t *once_control void (*init_routine)(void));
DESCRIPTION
The first call to
pthread_once ();
by any thread in a process, with a given
Fa once_control ,
will call the
init_routine ();
with no arguments.
Subsequent calls to
pthread_once ();
with the same
Fa once_control
will not call the
init_routine (.);
On return from
pthread_once (,);
it is guaranteed that
init_routine ();
has completed.
The
Fa once_control
parameter is used to determine whether the associated initialization
routine has been called.
The function
pthread_once ();
is not a cancellation point.
However, if
init_routine ();
is a cancellation point and is cancelled, the effect on
Fa once_control
is as if
pthread_once ();
was never called.
The constant
Fa PTHREAD_ONCE_INIT
is defined by header
In pthread.h .
The behavior of
pthread_once ();
is undefined if
Fa once_control
has automatic storage duration or is not initialized by
Fa PTHREAD_ONCE_INIT .
RETURN VALUES
If successful, the
pthread_once ();
function will return zero.
Otherwise an error number will be returned to
indicate the error.
ERRORS
None.
STANDARDS
The
pthread_once ();
function conforms to
St -p1003.1-96 .