3 #include <cds/gc/dhp.h>
4 #include <cds/container/basket_queue.h>
6 #include "queue/hdr_queue.h"
10 void HdrTestQueue::BasketQueue_DHP()
12 typedef cds::container::BasketQueue< cds::gc::DHP, int > queue_type;
13 test_no_ic< queue_type >();
16 void HdrTestQueue::BasketQueue_DHP_Counted()
18 struct traits : public cds::container::basket_queue::traits
20 typedef cds::atomicity::item_counter item_counter;
22 typedef cds::container::BasketQueue< cds::gc::DHP, int, traits > queue_type;
23 test_ic< queue_type >();
26 void HdrTestQueue::BasketQueue_DHP_relax()
28 struct traits : public
29 cds::container::basket_queue::make_traits <
30 cds::opt::memory_model< cds::opt::v::relaxed_ordering>
33 typedef cds::container::BasketQueue< cds::gc::DHP, int, traits > queue_type;
34 test_no_ic< queue_type >();
37 void HdrTestQueue::BasketQueue_DHP_Counted_relax()
39 typedef cds::container::BasketQueue< cds::gc::DHP, int,
40 typename cds::container::basket_queue::make_traits <
41 cds::opt::item_counter< cds::atomicity::item_counter >
42 ,cds::opt::memory_model< cds::opt::v::relaxed_ordering>
45 test_ic< queue_type >();
48 void HdrTestQueue::BasketQueue_DHP_seqcst()
50 struct traits : public cds::container::basket_queue::traits
52 typedef cds::opt::v::sequential_consistent memory_model;
54 typedef cds::container::BasketQueue< cds::gc::DHP, int, traits > queue_type;
55 test_no_ic< queue_type >();
58 void HdrTestQueue::BasketQueue_DHP_Counted_seqcst()
60 typedef cds::container::BasketQueue < cds::gc::DHP, int,
61 typename cds::container::basket_queue::make_traits <
62 cds::opt::item_counter< cds::atomicity::item_counter >
63 ,cds::opt::memory_model< cds::opt::v::sequential_consistent>
66 test_ic< queue_type >();
69 void HdrTestQueue::BasketQueue_DHP_relax_align()
71 typedef cds::container::BasketQueue < cds::gc::DHP, int,
72 typename cds::container::basket_queue::make_traits <
73 cds::opt::memory_model< cds::opt::v::relaxed_ordering>
74 ,cds::opt::alignment< 16 >
77 test_no_ic< queue_type >();
80 void HdrTestQueue::BasketQueue_DHP_Counted_relax_align()
82 struct traits : public cds::container::basket_queue::traits
84 typedef cds::atomicity::item_counter item_counter;
85 typedef cds::opt::v::relaxed_ordering memory_model;
86 enum { alignment = 32 };
88 typedef cds::container::BasketQueue < cds::gc::DHP, int, traits > queue_type;
89 test_ic< queue_type >();
92 void HdrTestQueue::BasketQueue_DHP_seqcst_align()
94 typedef cds::container::BasketQueue < cds::gc::DHP, int,
95 typename cds::container::basket_queue::make_traits <
96 cds::opt::memory_model< cds::opt::v::sequential_consistent>
97 , cds::opt::alignment< cds::opt::no_special_alignment >
100 test_no_ic< queue_type >();
103 void HdrTestQueue::BasketQueue_DHP_Counted_seqcst_align()
105 typedef cds::container::BasketQueue < cds::gc::DHP, int,
106 typename cds::container::basket_queue::make_traits <
107 cds::opt::item_counter< cds::atomicity::item_counter >
108 ,cds::opt::memory_model< cds::opt::v::sequential_consistent>
109 ,cds::opt::alignment< cds::opt::cache_line_alignment >
112 test_ic< queue_type >();