diff options
-rw-r--r-- | src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h index b3ea7d2f2a..9b49db3b7c 100644 --- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h +++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h @@ -71,10 +71,18 @@ #if OS(WINDOWS) && !OS(WINCE) #include <windows.h> +#elif OS(DARWIN) +#include <libkern/OSAtomic.h> #elif OS(ANDROID) #include <cutils/atomic.h> #elif OS(QNX) #include <atomic.h> +#elif COMPILER(GCC) && !OS(SYMBIAN) +#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 2)) +#include <ext/atomicity.h> +#else +#include <bits/atomicity.h> +#endif #endif #if USE(PTHREADS) @@ -222,6 +230,12 @@ inline int atomicIncrement(int volatile* addend) { return InterlockedIncrement(r inline int atomicDecrement(int volatile* addend) { return InterlockedDecrement(reinterpret_cast<long volatile*>(addend)); } #endif +#elif OS(DARWIN) +#define WTF_USE_LOCKFREE_THREADSAFESHARED 1 + +inline int atomicIncrement(int volatile* addend) { return OSAtomicIncrement32Barrier(const_cast<int*>(addend)); } +inline int atomicDecrement(int volatile* addend) { return OSAtomicDecrement32Barrier(const_cast<int*>(addend)); } + #elif OS(ANDROID) inline int atomicIncrement(int volatile* addend) { return android_atomic_inc(addend); } |