Merge pull request #28 from Rapotkinnik/upstream
[libcds.git] / tests / test-hdr / stack / hdr_treiber_stack_dhp.cpp
1 //$$CDS-header$$
2
3 #include "hdr_treiber_stack.h"
4 #include <cds/gc/dhp.h>
5 #include <cds/container/treiber_stack.h>
6
7 namespace stack {
8 #define TEST(X)     void TestStack::X() { test<defs::X>(); }
9     namespace cs = cds::container;
10
11     namespace defs { namespace {
12
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>
17             >::type
18         > Treiber_DHP_relaxed;
19
20         typedef cs::TreiberStack< cds::gc::DHP, int
21             , typename cs::treiber_stack::make_traits<
22                 cds::opt::back_off< cds::backoff::yield>
23             >::type
24         > Treiber_DHP_yield;
25
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>
30             >::type
31         > Treiber_DHP_yield_relaxed;
32
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 * > >
37             >::type
38         > Treiber_DHP_pause_alloc;
39
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 * > >
45             >::type
46         > Treiber_DHP_pause_alloc_relaxed;
47     }}
48
49     TEST(Treiber_DHP)
50     TEST(Treiber_DHP_yield)
51     TEST(Treiber_DHP_pause_alloc)
52
53     TEST(Treiber_DHP_relaxed)
54     TEST(Treiber_DHP_yield_relaxed)
55     TEST(Treiber_DHP_pause_alloc_relaxed)
56
57 }