TSan exam: fixed data races and false positives in queues
[libcds.git] / tests / unit / queue / intrusive_queue_reader_writer.cpp
index b5ad38c48f5e01b86e3f1dca14ad25c5f3ac1438..a4f0e734cc5e740f1d3d59dd00f47dc5a79e1602 100644 (file)
@@ -168,12 +168,14 @@ namespace queue {
                 while ( true ) {
                     typename Queue::value_type * p = m_Queue.pop();
                     if ( p ) {
+                        CDS_TSAN_ANNOTATE_IGNORE_RW_BEGIN;
                         p->nConsumer = m_nThreadNo;
                         ++m_nPopped;
                         if ( p->nWriterNo < nTotalWriters )
                             m_WriterData[ p->nWriterNo ].push_back( p->nNo );
                         else
                             ++m_nBadWriter;
+                        CDS_TSAN_ANNOTATE_IGNORE_RW_END;
                     }
                     else {
                         ++m_nPopEmpty;