29 lines
690 B
C
29 lines
690 B
C
|
#ifndef LJACKLM_WIN_MUTEX
|
||
|
#define LJACKLM_WIN_MUTEX
|
||
|
|
||
|
typedef CRITICAL_SECTION pthread_mutex_t;
|
||
|
|
||
|
static inline int pthread_mutex_init(pthread_mutex_t *mutex, void *attr) {
|
||
|
InitializeCriticalSection(mutex);
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
static inline void pthread_mutex_lock(pthread_mutex_t *mutex) {
|
||
|
EnterCriticalSection(mutex);
|
||
|
}
|
||
|
|
||
|
static inline int pthread_mutex_unlock(pthread_mutex_t *mutex) {
|
||
|
LeaveCriticalSection(mutex);
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
static inline int pthread_mutex_trylock(pthread_mutex_t *mutex) {
|
||
|
return TryEnterCriticalSection(mutex) == 0;
|
||
|
}
|
||
|
|
||
|
static inline void pthread_mutex_destroy(pthread_mutex_t *mutex) {
|
||
|
DeleteCriticalSection(mutex);
|
||
|
}
|
||
|
|
||
|
#endif // LJACKLM_WIN_MUTEX
|