This commit is contained in:
Nicolas Dextraze
2018-03-20 22:47:56 -07:00
parent 1ca51948c2
commit ec79155abf
5 changed files with 99 additions and 46 deletions

View File

@@ -10,22 +10,27 @@
#include "mutex.h"
#ifdef _WIN32
#include <windows.h>
struct st_mutex {
CRITICAL_SECTION handle;
};
mutex_t mutex_create() {
mutex_t mutex = malloc(sizeof(CRITICAL_SECTION));
InitializeCriticalSection(mutex);
mutex_t mutex = malloc(sizeof(struct st_mutex));
InitializeCriticalSection(&mutex->handle);
return mutex;
}
void mutex_lock(mutex_t mutex) {
EnterCriticalSection(mutex);
EnterCriticalSection(&mutex->handle);
}
void mutex_unlock(mutex_t mutex) {
LeaveCriticalSection(mutex);
LeaveCriticalSection(&mutex->handle);
}
void mutex_destroy(mutex_t mutex) {
DeleteCriticalSection(mutex);
DeleteCriticalSection(&mutex->handle);
}
#endif
#ifdef __linux__