#include #include #include static pthread_once_t oncelock=PTHREAD_ONCE_INIT; void myinitializer(void) { printf("In pthread_once..\n"); cyg_thread_delay(10); } void * thread(void * arg) { printf("(%s)Enter pthread_once\n",(char *)arg); pthread_once(&oncelock, myinitializer); printf("(%s)Leave pthread_once\n",(char *)arg); return NULL; } int main(void) { pthread_t handle1,handle2; pthread_create(&handle1,NULL, thread,"1"); pthread_create(&handle2,NULL, thread,"2"); return 0; }