NAME

kjb_pthread_once - Perform some kind of initialization just once

SYNOPSIS

#include "l_mt/l_mt_pthread.h"

Example compile flags (system dependent):
  -DLINUX_X86_64 -DLINUX_X86_64_OPTERON  -DGNU_COMPILER 
   -I/home/kobus/include
   -L/home/kobus/misc/load/linux_x86_64_opteron -L/usr/lib/x86_64-linux-gnu
  -lKJB                               -lfftw3  -lgsl -lgslcblas -ljpeg  -lSVM -lstdc++                    -lpthread -lSLATEC -lg2c    -lacml -lacml_mv -lblas -lg2c      -lncursesw 


int kjb_pthread_once
(
	kjb_pthread_once_t *once_control,
	void (*init_routine)(void)
);

DESCRIPTION

This works with a kjb_pthread_once_t flag as an atomic flip-binary-flag routine, useful for initializing things. The 'once_control' pointer must point to a static or external variable initialized to KJB_PTHREAD_ONCE_INIT and will execute (*init_routine)() just one time. Subsequent invocations with the same 'once_control' pointer will do nothing. LOCK STATUS: no, this does not block

RETURNS

ERROR if either input pointer equals NULL, otherwise NO_ERROR.

DISCLAIMER

This software is not adequatedly tested. It is recomended that results are checked independantly where appropriate.

AUTHOR

Andrew Predoehl

DOCUMENTER

Andrew Predoehl

SEE ALSO

kjb_pthread_create , kjb_pthread_mutex_lock , kjb_pthread_mutex_trylock , kjb_pthread_mutex_unlock , kjb_pthread_equal , get_kjb_pthread_self , kjb_pthread_exit , kjb_pthread_join , kjb_pthread_cancel , kjb_pthread_mutex_init , kjb_pthread_mutex_destroy , kjb_multithread_wrapper_serialization_lock , kjb_multithread_wrapper_serialization_unlock , kjb_pthread_key_create , kjb_pthread_key_delete , kjb_pthread_setspecific , kjb_pthread_getspecific , kjb_pthread_read_prng_seeds , kjb_pthread_attr_init , kjb_pthread_attr_destroy , kjb_pthread_attr_setdetachstate , kjb_pthread_attr_getdetachstate , get_kjb_pthread_number , reset_kjb_pthread_counter