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;
UScopeMutex(UMutex *mutex)
UScopeMutex(const UMutex &mutex)