diff options
Diffstat (limited to 'src/3rdParty/efsw/Atomic.hpp')
-rw-r--r--[-rwxr-xr-x] | src/3rdParty/efsw/Atomic.hpp | 18 |
1 files changed, 0 insertions, 18 deletions
diff --git a/src/3rdParty/efsw/Atomic.hpp b/src/3rdParty/efsw/Atomic.hpp index 4008dfc..9015c60 100755..100644 --- a/src/3rdParty/efsw/Atomic.hpp +++ b/src/3rdParty/efsw/Atomic.hpp | |||
@@ -3,9 +3,7 @@ | |||
3 | 3 | ||
4 | #include <efsw/base.hpp> | 4 | #include <efsw/base.hpp> |
5 | 5 | ||
6 | #ifdef EFSW_USE_CXX11 | ||
7 | #include <atomic> | 6 | #include <atomic> |
8 | #endif | ||
9 | 7 | ||
10 | namespace efsw { | 8 | namespace efsw { |
11 | 9 | ||
@@ -14,36 +12,20 @@ template <typename T> class Atomic { | |||
14 | explicit Atomic( T set = false ) : set_( set ) {} | 12 | explicit Atomic( T set = false ) : set_( set ) {} |
15 | 13 | ||
16 | Atomic& operator=( T set ) { | 14 | Atomic& operator=( T set ) { |
17 | #ifdef EFSW_USE_CXX11 | ||
18 | set_.store( set, std::memory_order_release ); | 15 | set_.store( set, std::memory_order_release ); |
19 | #else | ||
20 | set_ = set; | ||
21 | #endif | ||
22 | return *this; | 16 | return *this; |
23 | } | 17 | } |
24 | 18 | ||
25 | explicit operator T() const { | 19 | explicit operator T() const { |
26 | #ifdef EFSW_USE_CXX11 | ||
27 | return set_.load( std::memory_order_acquire ); | 20 | return set_.load( std::memory_order_acquire ); |
28 | #else | ||
29 | return set_; | ||
30 | #endif | ||
31 | } | 21 | } |
32 | 22 | ||
33 | T load() const { | 23 | T load() const { |
34 | #ifdef EFSW_USE_CXX11 | ||
35 | return set_.load( std::memory_order_acquire ); | 24 | return set_.load( std::memory_order_acquire ); |
36 | #else | ||
37 | return set_; | ||
38 | #endif | ||
39 | } | 25 | } |
40 | 26 | ||
41 | private: | 27 | private: |
42 | #ifdef EFSW_USE_CXX11 | ||
43 | std::atomic<T> set_; | 28 | std::atomic<T> set_; |
44 | #else | ||
45 | volatile T set_; | ||
46 | #endif | ||
47 | }; | 29 | }; |
48 | 30 | ||
49 | } // namespace efsw | 31 | } // namespace efsw |