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

Reply via email to