/*
This file is a part of libcds - Concurrent Data Structures library
- (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
+ (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2017
Source code repo: http://github.com/khizmax/libcds/
Download: http://sourceforge.net/projects/libcds/files/
#include <cds/intrusive/free_list.h>
#include <cds/intrusive/free_list_cached.h>
-#include <cds/intrusive/free_list_tagged.h>
+#ifdef CDS_DCAS_SUPPORT
+# include <cds/intrusive/free_list_tagged.h>
+#endif
namespace {
class put_get: public cds_test::stress_fixture
size_t counter;
value_type()
- : counter(0)
+ : counter(0)
{}
};
item_type* p;
while ( (p = static_cast<item_type*>( m_FreeList.get())) != nullptr ) {
+ CDS_TSAN_ANNOTATE_IGNORE_RW_BEGIN;
p->counter++;
+ CDS_TSAN_ANNOTATE_IGNORE_RW_END;
arr[n] = p;
++m_nSuccess;
++n;
};
atomics::atomic<tagged_ptr> tp;
- if ( tp.is_lock_free() ) {
+ if ( tp.is_lock_free()) {
cds::intrusive::TaggedFreeList fl;
test( fl );
}