diff options
Diffstat (limited to 'src/3rdparty')
-rw-r--r-- | src/3rdparty/webkit/Source/JavaScriptCore/wtf/Atomics.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Atomics.h b/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Atomics.h index acf0e5a..0bbdcfb 100644 --- a/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Atomics.h +++ b/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Atomics.h @@ -63,10 +63,18 @@ #if OS(WINDOWS) #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 namespace WTF { @@ -82,6 +90,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); } |