NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ATTRIBUTES
#include <pthread.h> pthread_once_t once_control = PTHREAD_ONCE_INIT;int pthread_once(pthread_once_t *once_control, void (*init_routine)void);
The pthread_once function is a synchronization tool used for dynamic initialization of library packages that are invoked concurrently from multiple threads. The first call to pthread_once by any thread in an actor, with a once_control provided, will invoke the init_routine function with no arguments. Subsequent calls of pthread_once will not call init_routine. On return from pthread_once it is guaranteed that init_routine has completed. The variable referenced by the once_control argument is used to determine whether the associated initialization routine has been called.
If once_control has automatic storage duration or was not initialized using PTHREAD_ONCE_INIT, the behavior of pthread_once is undefined.
The pthread_once function always returns zero.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ATTRIBUTES