Fixed memory ordering
authorkhizmax <libcds.dev@gmail.com>
Wed, 5 Apr 2017 20:42:39 +0000 (23:42 +0300)
committerkhizmax <libcds.dev@gmail.com>
Wed, 5 Apr 2017 20:42:39 +0000 (23:42 +0300)
src/hp.cpp

index afa05a3775dde0b3e81f0ed715f97c1b5769972b..616ea59bcda1ebe876e31c601d64d9331b803b54 100644 (file)
@@ -247,7 +247,7 @@ namespace cds { namespace gc { namespace hp {
         hprec = create_thread_data();
         hprec->m_idOwner.store( curThreadId, atomics::memory_order_relaxed );
 
-        thread_record* pOldHead = thread_list_.load( atomics::memory_order_acquire );
+        thread_record* pOldHead = thread_list_.load( atomics::memory_order_relaxed );
         do {
             hprec->m_pNextNode.store( pOldHead, atomics::memory_order_release );
         } while ( !thread_list_.compare_exchange_weak( pOldHead, hprec, atomics::memory_order_release, atomics::memory_order_acquire ) );