From fbfb6aa9b364d8121302e3ce7f390af7f651073d Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Tue, 19 Apr 2022 14:40:46 +0200 Subject: [PATCH 1/2] mem: add win32 lock --- src/mem/mem.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/mem/mem.c b/src/mem/mem.c index 0c4026e4e..8e0b2caeb 100644 --- a/src/mem/mem.c +++ b/src/mem/mem.c @@ -64,6 +64,38 @@ static inline void mem_unlock(void) pthread_mutex_unlock(&mem_mutex); } +#elif defined (WIN32) + +INIT_ONCE g_initMemLockOnce = INIT_ONCE_STATIC_INIT; +CRITICAL_SECTION g_memLock; + + +static BOOL CALLBACK InitHandleFunction(PINIT_ONCE initOnce, + PVOID parameter, + PVOID *lpContext) +{ + (void)initOnce; + (void)parameter; + + InitializeCriticalSection((LPCRITICAL_SECTION)lpContext); + + return TRUE; +} + + +static inline void mem_lock(void) +{ + InitOnceExecuteOnce(&g_initMemLockOnce, InitHandleFunction, + NULL, (PVOID*)&g_memLock); + EnterCriticalSection(&g_memLock); +} + + +static inline void mem_unlock(void) +{ + LeaveCriticalSection(&g_memLock); +} + #else #define mem_lock() /**< Stub */ From 5a99967b0bcabd78f944d572b0009c3d305a708b Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Tue, 19 Apr 2022 14:45:06 +0200 Subject: [PATCH 2/2] include windows.h --- src/mem/mem.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/mem/mem.c b/src/mem/mem.c index 8e0b2caeb..4feb06803 100644 --- a/src/mem/mem.c +++ b/src/mem/mem.c @@ -8,6 +8,8 @@ #include #ifdef HAVE_PTHREAD #include +#elif defined (WIN32) +#include #endif #include #include