projects
/
libcds.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
6b92ae5
)
[TSan] added annotation for suspicious (in terms of TSan) code
author
khizmax
<libcds.dev@gmail.com>
Tue, 29 Nov 2016 20:40:15 +0000
(23:40 +0300)
committer
khizmax
<libcds.dev@gmail.com>
Tue, 29 Nov 2016 20:40:15 +0000
(23:40 +0300)
src/hp_gc.cpp
patch
|
blob
|
history
diff --git
a/src/hp_gc.cpp
b/src/hp_gc.cpp
index 15c675ca6fd2b8fc5ae3941a1378b60328dcf39d..91bb6b548b6138d30428e2bcecd82e2f7d199830 100644
(file)
--- 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 {
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;
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;
} while ( !m_pListHead.compare_exchange_weak( pOldHead, hprec, atomics::memory_order_release, atomics::memory_order_relaxed ));
return hprec;