Skip to content
Snippets Groups Projects
Commit a40e1e63 authored by Deucе's avatar Deucе :ok_hand_tone4:
Browse files

Right, xpdev needs to scream BOOL, TRUE and FALSE.

parent 2b0c9484
No related branches found
No related tags found
No related merge requests found
Pipeline #5290 failed
......@@ -6,7 +6,7 @@
#elif defined(_WIN32)
bool
BOOL
rwlock_init(rwlock_t *lock)
{
InitializeCriticalSection(&lock->lk);
......@@ -17,7 +17,7 @@ rwlock_init(rwlock_t *lock)
writer = (DWORD)-1;
}
bool
BOOL
rwlock_rdlock(rwlock_t *lock)
{
DWORD obj;
......@@ -43,29 +43,29 @@ rwlock_rdlock(rwlock_t *lock)
lock->readers++;
LeaveCriticalSection(&lock->lk);
LeaveCriticalSection(&lock->wlk);
return true;
return TRUE;
}
}
lock->readers++;
LeaveCriticalSection(&lock->lk);
return true;
return TRUE;
}
bool
BOOL
rwlock_tryrdlock(rwlock_t *lock)
{
bool ret = false;
BOOL ret = FALSE;
EnterCriticalSection(&lock->lk);
if (lock->writers == 0 && lock->writers_waiting == 0) {
lock->readers++;
ret = true;
ret = TRUE;
}
LeaveCriticalSection(&lock->lk);
return ret;
}
bool
BOOL
rwlock_wrlock(rwlock_t *lock)
{
EnterCriticalSection(&lock->lk);
......@@ -80,14 +80,14 @@ rwlock_wrlock(rwlock_t *lock)
lock->writer = GetCurrentThreadId();
LeaveCriticalSection(&lock->lk);
// Keep holding wlk
return true;
return TRUE;
}
LeaveCriticalSection(&lock->lk);
LeaveCriticalSection(&lock->wlk);
return false;
return FALSE;
}
bool
BOOL
rwlock_trywrlock(rwlock_t *lock)
{
if (TryEnterCriticalSection(&lock->wlk)) {
......@@ -97,35 +97,35 @@ rwlock_trywrlock(rwlock_t *lock)
lock->writers++;
lock->writer = GetCurrentThreadId();
LeaveCriticalSection(&lock->lk);
return true;
return TRUE;
}
LeaveCriticalSection(&lock->lk);
LeaveCriticalSection(&lock->wlk);
return false;
return FALSE;
}
return false;
return FALSE;
}
bool
BOOL
rwlock_unlock(rwlock_t *lock)
{
bool ret = false;
BOOL ret = FALSE;
EnterCriticalSection(&lock->lk);
if (lock->writers) {
if (lock->writer == GetCurrentThreadId()) {
lock->writers--;
LeaveCriticalSection(&lock->lk);
LeaveCriticalSection(&lock->wlk);
return true;
return TRUE;
}
LeaveCriticalSection(&lock->lk);
return false;
return FALSE;
}
if (lock->readers) {
lock->readers--;
return true;
return TRUE;
}
return false;
return FALSE;
}
#elif defined(__unix__)
......
......@@ -4,7 +4,6 @@
#if defined(__unix__)
#include <pthread.h>
#include <stdbool.h>
typedef pthread_rwlock_t rwlock_t;
#define rwlock_init(lock) (pthread_rwlock_init(lock, NULL) == 0)
......@@ -20,11 +19,7 @@ typedef pthread_rwlock_t rwlock_t;
#elif defined(_WIN32)
#ifdef __MINGW32__
#include <stdbool.h>
#endif
#include "gen_defs.h" // For windows.h and bool :(
#include "gen_defs.h" // For windows.h and BOOL!! :(
#include "threadwrap.h"
typedef struct {
......@@ -36,12 +31,12 @@ typedef struct {
DWORD writer;
} rwlock_t;
bool rwlock_init(rwlock_t *lock);
bool rwlock_rdlock(rwlock_t *lock);
bool rwlock_tryrdlock(rwlock_t *lock);
bool rwlock_wrlock(rwlock_t *lock);
bool rwlock_trywrlock(rwlock_t *lock);
bool rwlock_unlock(rwlock_t *lock);
BOOL rwlock_init(rwlock_t *lock);
BOOL rwlock_rdlock(rwlock_t *lock);
BOOL rwlock_tryrdlock(rwlock_t *lock);
BOOL rwlock_wrlock(rwlock_t *lock);
BOOL rwlock_trywrlock(rwlock_t *lock);
BOOL rwlock_unlock(rwlock_t *lock);
#else
#error Not implemented
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment