65 InitializeCriticalSection(&
C);
67 pthread_mutexattr_t attr;
68 pthread_mutexattr_init(&attr);
69 pthread_mutexattr_settype(&attr,PTHREAD_MUTEX_RECURSIVE);
70 pthread_mutex_init(&
M,&attr);
71 pthread_mutexattr_destroy(&attr);
78 DeleteCriticalSection(&
C);
80 pthread_mutex_unlock(&
M); pthread_mutex_destroy(&
M);
90 EnterCriticalSection(&
C);
return 0;
92 return pthread_mutex_lock(&
M);
97 #if(_WIN32_WINNT >= 0x0400)
100 return (TryEnterCriticalSection(&
C)?0:EBUSY);
106 return pthread_mutex_trylock(&
M);
116 LeaveCriticalSection(&
C);
return 0;
118 return pthread_mutex_unlock(&
M);
124 mutable CRITICAL_SECTION
C;
126 mutable pthread_mutex_t
M;