From b81685e766f65195fd20f4e0bb0dc1978807766c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luka=20=C4=8Cehovin?= Date: Mon, 8 May 2017 17:51:53 +0200 Subject: [PATCH] Some OSX build fixes. --- src/message.c | 20 ++++++++++---------- support/client/client.cpp | 10 +++++----- support/client/threads.cpp | 8 ++++---- support/client/threads.h | 4 ++++ support/client/timer.cpp | 2 +- 5 files changed, 24 insertions(+), 20 deletions(-) diff --git a/src/message.c b/src/message.c index c0119c6..f47ec49 100644 --- a/src/message.c +++ b/src/message.c @@ -50,16 +50,16 @@ static void initialize_sockets(void) { #else -#ifdef _MAC_ - #include -#else - #include - #include - #include - #include - #include - #define closesocket close -#endif +//#ifdef __APPLE__ +// #include +//#else +#include +#include +#include +#include +#include +#define closesocket close +//#endif #define __INLINE static inline diff --git a/support/client/client.cpp b/support/client/client.cpp index b5e19b1..20b7277 100644 --- a/support/client/client.cpp +++ b/support/client/client.cpp @@ -54,16 +54,16 @@ __inline void sleep(long time) { #else -#ifdef _MAC_ -#include -#else +//#ifdef __APPLE__ +// #include +//#else #include #include #include -#include #include +#include #define closesocket close -#endif +//#endif void sleepf(float seconds) { usleep((long) (seconds * 1000000.0)); diff --git a/support/client/threads.cpp b/support/client/threads.cpp index 6ba07ef..24e3298 100644 --- a/support/client/threads.cpp +++ b/support/client/threads.cpp @@ -108,7 +108,7 @@ void* simple_threads_join_thread(THREAD t) { Mutex::Mutex() { MUTEX_INIT(mutex); - owner = -1; + owner = THREAD_NONE; counter = 0; @@ -126,7 +126,7 @@ void Mutex::acquire() { } else { THREAD_IDENTIFIER tid = THREAD_GET_IDENTIFIER(); - if (tid != owner) { + if (!THREAD_EQUALS(tid, owner)) { MUTEX_LOCK(mutex); owner = tid; counter = 0; @@ -145,11 +145,11 @@ void Mutex::release() { THREAD_IDENTIFIER tid = THREAD_GET_IDENTIFIER(); - if (tid == owner) { + if (THREAD_EQUALS(tid, owner)) { counter--; if (counter < 1) { - owner = -1; + owner = THREAD_NONE; MUTEX_UNLOCK(mutex); } } diff --git a/support/client/threads.h b/support/client/threads.h index bdd905d..762d0b6 100644 --- a/support/client/threads.h +++ b/support/client/threads.h @@ -40,6 +40,8 @@ extern "C" { #define MUTEX_UNLOCK(M) ReleaseMutex(M) #define MUTEX_INIT(M) (M = CreateMutex(NULL, FALSE, NULL)) #define MUTEX_DESTROY(M) WaitForSingleObject(M, INFINITE); CloseHandle(M) +#define THREAD_EQUALS(T1, T2) (T1 == T2) +#define THREAD_NONE -1 #define CONDITION_SIGNAL(C) SetEvent(C) #define CONDITION_DESTROY(C) CloseHandle(C) @@ -77,6 +79,8 @@ typedef struct pthread_wrapper { #define MUTEX_UNLOCK(M) pthread_mutex_unlock(&M) #define MUTEX_INIT(M) pthread_mutex_init(&M, NULL) #define MUTEX_DESTROY(M) pthread_mutex_destroy(&M) +#define THREAD_EQUALS(T1, T2) (T1 == T2 || (T1 && T2 && pthread_equal(T1, T2))) +#define THREAD_NONE ((pthread_t) 0) #define CONDITION_SIGNAL(C) pthread_cond_signal(&C) #define CONDITION_DESTROY(C) pthread_cond_destroy(&C) diff --git a/support/client/timer.cpp b/support/client/timer.cpp index 1182d4b..0f8d519 100644 --- a/support/client/timer.cpp +++ b/support/client/timer.cpp @@ -4,7 +4,7 @@ #define WINDOWS #include #else -#ifdef _MAC_ +#ifdef __APPLE__ #define OSX #include #include