X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=cds%2Fcontainer%2Ffcdeque.h;h=d081ee0edb7bb73af4e56ef28cda53f6db1477e7;hb=048bea32ef36397773efffe003953e71522fa9d3;hp=3270be7bc7e58f0fa89f1a5b25181a16f267d0f0;hpb=2bb66f1d159d044d2c5dad0f0f968abcb6d53287;p=libcds.git diff --git a/cds/container/fcdeque.h b/cds/container/fcdeque.h index 3270be7b..d081ee0e 100644 --- a/cds/container/fcdeque.h +++ b/cds/container/fcdeque.h @@ -381,9 +381,6 @@ namespace cds { namespace container { { assert( pRec ); - // this function is called under FC mutex, so switch TSan off - CDS_TSAN_ANNOTATE_IGNORE_RW_BEGIN; - switch ( pRec->op()) { case op_push_front: assert( pRec->pValPush ); @@ -425,7 +422,6 @@ namespace cds { namespace container { assert(false); break; } - CDS_TSAN_ANNOTATE_IGNORE_RW_END; } /// Batch-processing flat combining @@ -433,11 +429,8 @@ namespace cds { namespace container { { typedef typename fc_kernel::iterator fc_iterator; - // this function is called under FC mutex, so switch TSan off - CDS_TSAN_ANNOTATE_IGNORE_RW_BEGIN; - for ( fc_iterator it = itBegin, itPrev = itEnd; it != itEnd; ++it ) { - switch ( it->op()) { + switch ( it->op( atomics::memory_order_acquire )) { case op_push_front: if ( itPrev != itEnd && (itPrev->op() == op_pop_front || (m_Deque.empty() && itPrev->op() == op_pop_back))) @@ -552,7 +545,6 @@ namespace cds { namespace container { break; } } - CDS_TSAN_ANNOTATE_IGNORE_RW_END; } //@endcond