aboutsummaryrefslogtreecommitdiff
path: root/src/3rdParty/efsw/Atomic.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdParty/efsw/Atomic.hpp')
-rw-r--r--[-rwxr-xr-x]src/3rdParty/efsw/Atomic.hpp18
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
10namespace efsw { 8namespace 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