/** * @file thread.c * @author myusgun * @version 0.1 */ #include "cf_thread.h" #include CF_Mutex globalMutex; int worker (void * arg) { if (CF_Mutex_Lock (&globalMutex) < 0) { // for critical section // error } fprintf (stderr, "here is critical section !\n"); if (CF_Mutex_Unlock (&globalMutex) < 0) { // for critical section // error } return 0; } int main (void) { CF_Thread tid[10]; int i = 0; if (CF_Mutex_Create (&globalMutex) < 0) { // error } for (i = 0 ; i < 10 ; i++) { if (CF_Thread_Create (&tid[i], worker, NULL) < 0) { // error } } for (i = 0 ; i < 10 ; i++) { if (CF_Thread_Join (&tid[i]) < 0) { // block // error } } for (i = 0 ; i < 10 ; i++) { if (CF_Thread_Release (&tid[i]) < 0) { // error } } if (CF_Mutex_Destory (&globalMutex) < 0) { // error } return 0; }