Author: rfm
Date: Mon Jun 27 21:05:40 2016
New Revision: 39932
URL: http://svn.gna.org/viewcvs/gnustep?rev=39932&view=rev
Log:
Don't use windows atomics unless compiler ones aren't available
Modified:
libs/base/trunk/Source/NSObject.m
Modified: libs/base/trunk/Source/NSObject.m
URL:
http://svn.gna.org/viewcvs/gnustep/libs/base/trunk/Source/NSObject.m?rev=39932&r1=39931&r2=39932&view=diff
==============================================================================
--- libs/base/trunk/Source/NSObject.m (original)
+++ libs/base/trunk/Source/NSObject.m Mon Jun 27 21:05:40 2016
@@ -187,7 +187,23 @@
#endif
-#if defined(_WIN32)
+
+#if defined(__llvm__) || (defined(USE_ATOMIC_BUILTINS) && (__GNUC__ > 4 ||
(__GNUC__ == 4 && __GNUC_MINOR__ >= 1)))
+/* Use the GCC atomic operations with recent GCC versions */
+
+typedef int32_t volatile *gsatomic_t;
+#define GSATOMICREAD(X) (*(X))
+#define GSAtomicIncrement(X) __sync_add_and_fetch(X, 1)
+#define GSAtomicDecrement(X) __sync_sub_and_fetch(X, 1)
+
+
+#elif defined(_WIN32)
+
+/* Set up atomic read, increment and decrement for mswindows
+ */
+
+typedef int32_t volatile *gsatomic_t;
+
#ifndef _WIN64
#undef InterlockedIncrement
#undef InterlockedDecrement
@@ -195,25 +211,10 @@
LONG WINAPI InterlockedDecrement(LONG volatile *);
#endif
-/* Set up atomic read, increment and decrement for mswindows
- */
-
-typedef int32_t volatile *gsatomic_t;
-
#define GSATOMICREAD(X) (*(X))
#define GSAtomicIncrement(X) InterlockedIncrement(X)
#define GSAtomicDecrement(X) InterlockedDecrement(X)
-
-
-#elif defined(__llvm__) || (defined(USE_ATOMIC_BUILTINS) && (__GNUC__ > 4 ||
(__GNUC__ == 4 && __GNUC_MINOR__ >= 1)))
-/* Use the GCC atomic operations with recent GCC versions */
-
-typedef int32_t volatile *gsatomic_t;
-#define GSATOMICREAD(X) (*(X))
-#define GSAtomicIncrement(X) __sync_add_and_fetch(X, 1)
-#define GSAtomicDecrement(X) __sync_sub_and_fetch(X, 1)
-
#elif defined(__linux__) && (defined(__i386__) || defined(__x86_64__))
/* Set up atomic read, increment and decrement for intel style linux
_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs