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

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

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