The only pthread functionality this seems to use is mutexes, which are (fortunately) theoretically trivial to wrap for windows. This compiles, though it is not clear if it actually works correctly.
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
|