Relaxed memory order in SplitList
authorkhizmax <libcds.dev@gmail.com>
Wed, 15 Apr 2015 20:35:21 +0000 (23:35 +0300)
committerkhizmax <libcds.dev@gmail.com>
Wed, 15 Apr 2015 20:35:21 +0000 (23:35 +0300)
cds/intrusive/split_list.h
cds/intrusive/split_list_nogc.h
cds/intrusive/split_list_rcu.h

index 933c99438beac677d4fd3fe30f5300f9f1fc9781..d67ab64daa876e0e8327a689f8d65876ff03426c 100644 (file)
@@ -377,7 +377,7 @@ namespace cds { namespace intrusive {
 
         size_t bucket_no( size_t nHash ) const
         {
-            return nHash & ( (1 << m_nBucketCountLog2.load(atomics::memory_order_relaxed)) - 1 );
+            return nHash & ( (1 << m_nBucketCountLog2.load(memory_model::memory_order_relaxed)) - 1 );
         }
 
         static size_t parent_bucket( size_t nBucket )
@@ -460,10 +460,10 @@ namespace cds { namespace intrusive {
 
         void    inc_item_count()
         {
-            size_t sz = m_nBucketCountLog2.load(atomics::memory_order_relaxed);
+            size_t sz = m_nBucketCountLog2.load(memory_model::memory_order_relaxed);
             if ( ( ++m_ItemCounter >> sz ) > m_Buckets.load_factor() && ((size_t)(1 << sz )) < m_Buckets.capacity() )
             {
-                m_nBucketCountLog2.compare_exchange_strong( sz, sz + 1, atomics::memory_order_seq_cst, atomics::memory_order_relaxed );
+                m_nBucketCountLog2.compare_exchange_strong( sz, sz + 1, memory_model::memory_order_relaxed, atomics::memory_order_relaxed );
             }
         }
 
index 04994be5efbd0de16c4a31b0f7cbf1b81d2785cd..8166312f2576f17d4b5b57577af34695f243eed4 100644 (file)
@@ -172,7 +172,7 @@ namespace cds { namespace intrusive {
 
         size_t bucket_no( size_t nHash ) const
         {
-            return nHash & ( (1 << m_nBucketCountLog2.load(atomics::memory_order_relaxed)) - 1 );
+            return nHash & ( (1 << m_nBucketCountLog2.load(memory_model::memory_order_relaxed)) - 1 );
         }
 
         static size_t parent_bucket( size_t nBucket )
@@ -255,10 +255,10 @@ namespace cds { namespace intrusive {
 
         void    inc_item_count()
         {
-            size_t sz = m_nBucketCountLog2.load(atomics::memory_order_relaxed);
+            size_t sz = m_nBucketCountLog2.load(memory_model::memory_order_relaxed);
             if ( ( ++m_ItemCounter >> sz ) > m_Buckets.load_factor() && ((size_t)(1 << sz )) < m_Buckets.capacity() )
             {
-                m_nBucketCountLog2.compare_exchange_strong( sz, sz + 1, atomics::memory_order_seq_cst, atomics::memory_order_relaxed );
+                m_nBucketCountLog2.compare_exchange_strong( sz, sz + 1, memory_model::memory_order_relaxed, atomics::memory_order_relaxed );
             }
         }
 
index 70f9ff3f1cbfca57fbf1667796d3ad41c2c36b4f..8a7916b41817e22604a169b4496e7f2a7c6da4ef 100644 (file)
@@ -269,7 +269,7 @@ namespace cds { namespace intrusive {
 
         size_t bucket_no( size_t nHash ) const
         {
-            return nHash & ( (1 << m_nBucketCountLog2.load(atomics::memory_order_relaxed)) - 1 );
+            return nHash & ( (1 << m_nBucketCountLog2.load(memory_model::memory_order_relaxed)) - 1 );
         }
 
         static size_t parent_bucket( size_t nBucket )
@@ -352,10 +352,10 @@ namespace cds { namespace intrusive {
 
         void    inc_item_count()
         {
-            size_t sz = m_nBucketCountLog2.load(atomics::memory_order_relaxed);
+            size_t sz = m_nBucketCountLog2.load(memory_model::memory_order_relaxed);
             if ( ( ++m_ItemCounter >> sz ) > m_Buckets.load_factor() && ((size_t)(1 << sz )) < m_Buckets.capacity() )
             {
-                m_nBucketCountLog2.compare_exchange_strong( sz, sz + 1, atomics::memory_order_seq_cst, atomics::memory_order_relaxed );
+                m_nBucketCountLog2.compare_exchange_strong( sz, sz + 1, memory_model::memory_order_relaxed, atomics::memory_order_relaxed );
             }
         }