summaryrefslogtreecommitdiff
path: root/cpp/include/IceUtil/Shared.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/include/IceUtil/Shared.h')
-rw-r--r--cpp/include/IceUtil/Shared.h16
1 files changed, 8 insertions, 8 deletions
diff --git a/cpp/include/IceUtil/Shared.h b/cpp/include/IceUtil/Shared.h
index cc6d57af51e..b9390ab0c66 100644
--- a/cpp/include/IceUtil/Shared.h
+++ b/cpp/include/IceUtil/Shared.h
@@ -12,7 +12,9 @@
#include <IceUtil/Config.h>
-#if defined(ICE_USE_MUTEX_SHARED)
+#if defined(ICE_CPP11)
+# include <atomic>
+#elif defined(ICE_USE_MUTEX_SHARED)
# include <IceUtil/Mutex.h>
@@ -29,10 +31,6 @@
# define ICE_HAS_GCC_BUILTINS
-#elif (defined(__APPLE__) || defined(__linux) || defined(__FreeBSD__)) && (defined(__i386) || defined(__x86_64)) && !defined(__ICC)
-
-# define ICE_HAS_ATOMIC_FUNCTIONS
-
#elif defined(_WIN32)
// Nothing to include
#else
@@ -152,10 +150,12 @@ public:
protected:
-#if defined(_WIN32)
+#if defined(ICE_CPP11)
+ std::atomic_int _ref;
+#elif defined(_WIN32)
LONG _ref;
-#elif defined(ICE_HAS_ATOMIC_FUNCTIONS) || defined(ICE_HAS_GCC_BUILTINS)
- volatile int _ref;
+#elif defined(ICE_HAS_GCC_BUILTINS)
+ int _ref;
#else
int _ref;
Mutex _mutex;