From 7a967df907441108b11aac4a71bdbbca403e4c0a Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Wed, 15 Nov 2000 02:46:55 +0000 Subject: [PATCH] Added support for POSIX mutexes for Win32 builds. --- src/sbbs3/sbbswrap.h | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/sbbs3/sbbswrap.h b/src/sbbs3/sbbswrap.h index f2e38468d9..d84330e4aa 100644 --- a/src/sbbs3/sbbswrap.h +++ b/src/sbbs3/sbbswrap.h @@ -125,13 +125,21 @@ extern "C" { ulong _beginthread(void( *start_address )( void * ) ,unsigned stack_size, void *arglist); -#elif defined(_WIN32) /* semaphores */ +#elif defined(_WIN32) + /* POIX semaphores */ typedef HANDLE sem_t; - #define sem_init(psem,ps,v) ResetEvent(*(psem)) - #define sem_wait(psem) WaitForSingleObject(*(psem),INFINITE) - #define sem_post(psem) SetEvent(*(psem)) - #define sem_destroy(psem) CloseHandle(*(psem)) + #define sem_init(psem,ps,v) ResetEvent(*(psem)) + #define sem_wait(psem) WaitForSingleObject(*(psem),INFINITE) + #define sem_post(psem) SetEvent(*(psem)) + #define sem_destroy(psem) CloseHandle(*(psem)) + + /* POIX mutexes */ + typedef HANDLE pthread_mutex_t; + #define pthread_mutex_init(pmtx,v) *(pmtx)=CreateMutex(NULL,FALSE,NULL) + #define pthread_mutex_lock(pmtx) WaitForSingleObject(*(pmtx),INFINITE) + #define pthread_mutex_unlock(pmtx) ReleaseMutex(*(pmtx)) + #define pthread_mutex_destroy(pmtx) CloseHandle(*(pmtx)) #else -- GitLab