3 #include "hdr_treiber_stack.h"
4 #include <cds/gc/ptb.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::PTB, int > Treiber_PTB;
14 typedef cs::TreiberStack< cds::gc::PTB, int, cds::opt::memory_model<cds::opt::v::relaxed_ordering> > Treiber_PTB_relaxed;
16 typedef cs::TreiberStack< cds::gc::PTB, int, cds::opt::back_off< cds::backoff::yield> > Treiber_PTB_yield;
17 typedef cs::TreiberStack< cds::gc::PTB, int
18 ,cds::opt::back_off< cds::backoff::yield>
19 ,cds::opt::memory_model<cds::opt::v::relaxed_ordering>
20 > Treiber_PTB_yield_relaxed;
22 typedef cs::TreiberStack< cds::gc::PTB, int
23 ,cds::opt::back_off< cds::backoff::pause>
24 ,cds::opt::allocator< std::allocator< bool * > >
25 > Treiber_PTB_pause_alloc;
27 typedef cs::TreiberStack< cds::gc::PTB, int
28 ,cds::opt::memory_model<cds::opt::v::relaxed_ordering>
29 ,cds::opt::back_off< cds::backoff::pause>
30 ,cds::opt::allocator< std::allocator< bool * > >
31 > Treiber_PTB_pause_alloc_relaxed;
35 TEST(Treiber_PTB_yield)
36 TEST(Treiber_PTB_pause_alloc)
38 TEST(Treiber_PTB_relaxed)
39 TEST(Treiber_PTB_yield_relaxed)
40 TEST(Treiber_PTB_pause_alloc_relaxed)