3 #include "hdr_treiber_stack.h"
4 #include <cds/gc/dhp.h>
5 #include <cds/container/treiber_stack.h>
8 #define TEST(X) void TestStack::X() { test<defs::X>(); }
9 namespace cs = cds::container;
11 namespace defs { namespace {
13 typedef cs::TreiberStack< cds::gc::DHP, int > Treiber_DHP;
14 typedef cs::TreiberStack< cds::gc::DHP, int
15 , typename cs::treiber_stack::make_traits<
16 cds::opt::memory_model<cds::opt::v::relaxed_ordering>
18 > Treiber_DHP_relaxed;
20 typedef cs::TreiberStack< cds::gc::DHP, int
21 , typename cs::treiber_stack::make_traits<
22 cds::opt::back_off< cds::backoff::yield>
26 typedef cs::TreiberStack< cds::gc::DHP, int
27 , typename cs::treiber_stack::make_traits<
28 cds::opt::back_off< cds::backoff::yield>
29 ,cds::opt::memory_model<cds::opt::v::relaxed_ordering>
31 > Treiber_DHP_yield_relaxed;
33 typedef cs::TreiberStack< cds::gc::DHP, int
34 , typename cs::treiber_stack::make_traits<
35 cds::opt::back_off< cds::backoff::pause>
36 ,cds::opt::allocator< std::allocator< bool * > >
38 > Treiber_DHP_pause_alloc;
40 typedef cs::TreiberStack< cds::gc::DHP, int
41 , typename cs::treiber_stack::make_traits<
42 cds::opt::memory_model<cds::opt::v::relaxed_ordering>
43 ,cds::opt::back_off< cds::backoff::pause>
44 ,cds::opt::allocator< std::allocator< bool * > >
46 > Treiber_DHP_pause_alloc_relaxed;
50 TEST(Treiber_DHP_yield)
51 TEST(Treiber_DHP_pause_alloc)
53 TEST(Treiber_DHP_relaxed)
54 TEST(Treiber_DHP_yield_relaxed)
55 TEST(Treiber_DHP_pause_alloc_relaxed)