From 2fd0a81f93fe895cd3a8d8cf8b17ad5385d13422 Mon Sep 17 00:00:00 2001 From: Jukka Ojanen Date: Sat, 10 Jul 2021 16:29:40 +0300 Subject: [PATCH] Use critical section instead of mutex in Windows --- include/thread.h | 6 +++--- include/types.h | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/include/thread.h b/include/thread.h index 61a7447d9..fcd7e1e6c 100644 --- a/include/thread.h +++ b/include/thread.h @@ -22,17 +22,17 @@ #define hc_thread_exit(t) ExitThread (t) #define hc_thread_detach(t) CloseHandle (t) -/* +#define hc_thread_mutex_init(m) InitializeCriticalSection (&m) #define hc_thread_mutex_lock(m) EnterCriticalSection (&m) #define hc_thread_mutex_unlock(m) LeaveCriticalSection (&m) -#define hc_thread_mutex_init(m) InitializeCriticalSection (&m) #define hc_thread_mutex_delete(m) DeleteCriticalSection (&m) -*/ +/* #define hc_thread_mutex_init(m) m = CreateMutex (NULL, FALSE, NULL) #define hc_thread_mutex_lock(m) WaitForSingleObject (m, INFINITE) #define hc_thread_mutex_unlock(m) ReleaseMutex (m) #define hc_thread_mutex_delete(m) CloseHandle (m) +*/ #define hc_thread_sem_init(s) s = CreateSemaphore (NULL, 0, INT_MAX, NULL) #define hc_thread_sem_post(s) ReleaseSemaphore (s, 1, NULL) diff --git a/include/types.h b/include/types.h index d5119d3a0..33877c11d 100644 --- a/include/types.h +++ b/include/types.h @@ -81,13 +81,13 @@ typedef struct timespec hc_timer_t; #endif #if defined (_WIN) -typedef HANDLE hc_thread_t; -typedef HANDLE hc_thread_mutex_t; -typedef HANDLE hc_thread_semaphore_t; +typedef HANDLE hc_thread_t; +typedef CRITICAL_SECTION hc_thread_mutex_t; +typedef HANDLE hc_thread_semaphore_t; #else -typedef pthread_t hc_thread_t; -typedef pthread_mutex_t hc_thread_mutex_t; -typedef sem_t hc_thread_semaphore_t; +typedef pthread_t hc_thread_t; +typedef pthread_mutex_t hc_thread_mutex_t; +typedef sem_t hc_thread_semaphore_t; #endif // enums