From: khizmax Date: Tue, 29 Nov 2016 20:40:15 +0000 (+0300) Subject: [TSan] added annotation for suspicious (in terms of TSan) code X-Git-Tag: v2.2.0~32 X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=f0d7195f5eae770fa1a1cf13d403a31c7d30b2a2;p=libcds.git [TSan] added annotation for suspicious (in terms of TSan) code --- diff --git a/src/hp_gc.cpp b/src/hp_gc.cpp index 15c675ca..91bb6b54 100644 --- a/src/hp_gc.cpp +++ b/src/hp_gc.cpp @@ -150,8 +150,9 @@ namespace cds { namespace gc { hplist_node * pOldHead = m_pListHead.load( atomics::memory_order_acquire ); do { + // TSan: Next CAS release orders the memory + CDS_TSAN_ANNOTATE_HAPPENS_BEFORE(&hprec->m_pNextNode ); hprec->m_pNextNode = pOldHead; - CDS_TSAN_ANNOTATE_HAPPENS_BEFORE( &( hprec->m_pNextNode )); } while ( !m_pListHead.compare_exchange_weak( pOldHead, hprec, atomics::memory_order_release, atomics::memory_order_relaxed )); return hprec;