Query: run_once
OS: netbsd
Section: 9
Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar
RUN_ONCE(9) BSD Kernel Developer's Manual RUN_ONCE(9)NAMERUN_ONCE -- Run a function exactly onceSYNOPSIS#include <sys/once.h> ONCE_DECL(control); int RUN_ONCE(once_t *control, int (*init_func)(void));DESCRIPTIONRUN_ONCE() provides a functionality similar to pthread_once(3). It ensures that, for a given control, init_func() is executed (successfully) exactly once. It is considered as a successful execution if and only if init_func() returned 0. As long as there was no successful execu- tion, RUN_ONCE() will try again each time it is called. RUN_ONCE() can sleep if it's called concurrently.RETURN VALUESOn failure, RUN_ONCE() returns what init_func() returned. Otherwise, it returns 0.EXAMPLESThe following example shows how RUN_ONCE() is used. Regardless of how many times some_func() is executed, init_func() will be executed exactly once. static int init_func(void) { /* * do some initialization. */ return 0; /* success */ } int some_func(void) { static ONCE_DECL(control); RUN_ONCE(&control, init_func); /* * we are sure that init_func has already been completed here. */ }SEE ALSOpthread_once(3), condvar(9), intro(9)BSDJuly 7, 2010 BSD
Related Man Pages |
---|
pthread_once(3c) - opensolaris |
vmem_create(9) - netbsd |
pthread_once(3) - netbsd |
vmem(9) - netbsd |
vmem_alloc(9) - netbsd |
Similar Topics in the Unix Linux Community |
---|
Crons executed multiple times. |