3 #include "hdr_intrusive_segmented_queue.h"
4 #include <cds/intrusive/segmented_queue.h>
9 void HdrIntrusiveSegmentedQueue::SegmQueue_HP()
11 struct queue_traits : public cds::intrusive::segmented_queue::traits
13 typedef Disposer disposer;
15 typedef cds::intrusive::SegmentedQueue< cds::gc::HP, item, queue_traits > queue_type;
20 void HdrIntrusiveSegmentedQueue::SegmQueue_HP_mutex()
22 struct queue_traits : public
23 cds::intrusive::segmented_queue::make_traits <
24 cds::intrusive::opt::disposer< Disposer >
25 ,cds::opt::lock_type < std::mutex >
28 typedef cds::intrusive::SegmentedQueue< cds::gc::HP, item, queue_traits > queue_type;
33 void HdrIntrusiveSegmentedQueue::SegmQueue_HP_shuffle()
35 typedef cds::intrusive::SegmentedQueue< cds::gc::HP, item,
36 cds::intrusive::segmented_queue::make_traits<
37 cds::intrusive::opt::disposer< Disposer >
38 ,cds::opt::item_counter< cds::atomicity::item_counter >
39 ,cds::opt::permutation_generator< cds::opt::v::random_shuffle_permutation<> >
46 void HdrIntrusiveSegmentedQueue::SegmQueue_HP_stat()
48 typedef cds::intrusive::SegmentedQueue< cds::gc::HP, item,
49 cds::intrusive::segmented_queue::make_traits<
50 cds::intrusive::opt::disposer< Disposer >
51 ,cds::opt::item_counter< cds::atomicity::item_counter >
52 ,cds::opt::permutation_generator< cds::opt::v::random_permutation<> >
53 ,cds::opt::stat< cds::intrusive::segmented_queue::stat<> >
60 void HdrIntrusiveSegmentedQueue::SegmQueue_HP_cacheline_padding()
62 struct queue_traits : public cds::intrusive::segmented_queue::traits
64 typedef Disposer disposer;
65 enum { padding = cds::opt::cache_line_padding };
67 typedef cds::intrusive::SegmentedQueue< cds::gc::HP, item, queue_traits > queue_type;
72 void HdrIntrusiveSegmentedQueue::SegmQueue_HP_mutex_cacheline_padding()
74 struct queue_traits : public
75 cds::intrusive::segmented_queue::make_traits <
76 cds::intrusive::opt::disposer< Disposer >
77 ,cds::opt::lock_type < std::mutex >
78 ,cds::opt::padding< cds::opt::cache_line_padding >
81 typedef cds::intrusive::SegmentedQueue< cds::gc::HP, item, queue_traits > queue_type;
86 void HdrIntrusiveSegmentedQueue::SegmQueue_HP_shuffle_cacheline_padding()
88 typedef cds::intrusive::SegmentedQueue< cds::gc::HP, item,
89 cds::intrusive::segmented_queue::make_traits<
90 cds::intrusive::opt::disposer< Disposer >
91 ,cds::opt::item_counter< cds::atomicity::item_counter >
92 , cds::opt::padding< cds::opt::cache_line_padding >
93 ,cds::opt::permutation_generator< cds::opt::v::random_shuffle_permutation<> >
100 void HdrIntrusiveSegmentedQueue::SegmQueue_HP_stat_cacheline_padding()
102 typedef cds::intrusive::SegmentedQueue< cds::gc::HP, item,
103 cds::intrusive::segmented_queue::make_traits<
104 cds::intrusive::opt::disposer< Disposer >
105 , cds::opt::padding< cds::opt::cache_line_padding >
106 ,cds::opt::item_counter< cds::atomicity::item_counter >
107 ,cds::opt::permutation_generator< cds::opt::v::random_permutation<> >
108 ,cds::opt::stat< cds::intrusive::segmented_queue::stat<> >
115 void HdrIntrusiveSegmentedQueue::SegmQueue_HP_256_padding()
117 struct queue_traits : public cds::intrusive::segmented_queue::traits
119 typedef Disposer disposer;
120 enum { padding = 256 };
122 typedef cds::intrusive::SegmentedQueue< cds::gc::HP, item, queue_traits > queue_type;
127 void HdrIntrusiveSegmentedQueue::SegmQueue_HP_mutex_256_padding()
129 struct queue_traits : public
130 cds::intrusive::segmented_queue::make_traits <
131 cds::intrusive::opt::disposer< Disposer >
132 ,cds::opt::lock_type < std::mutex >
133 ,cds::opt::padding< 256 >
136 typedef cds::intrusive::SegmentedQueue< cds::gc::HP, item, queue_traits > queue_type;
141 void HdrIntrusiveSegmentedQueue::SegmQueue_HP_shuffle_256_padding()
143 typedef cds::intrusive::SegmentedQueue< cds::gc::HP, item,
144 cds::intrusive::segmented_queue::make_traits<
145 cds::intrusive::opt::disposer< Disposer >
146 ,cds::opt::item_counter< cds::atomicity::item_counter >
147 , cds::opt::padding< 256 >
148 ,cds::opt::permutation_generator< cds::opt::v::random_shuffle_permutation<> >
155 void HdrIntrusiveSegmentedQueue::SegmQueue_HP_stat_256_padding()
157 typedef cds::intrusive::SegmentedQueue< cds::gc::HP, item,
158 cds::intrusive::segmented_queue::make_traits<
159 cds::intrusive::opt::disposer< Disposer >
160 , cds::opt::padding< 256 >
161 ,cds::opt::item_counter< cds::atomicity::item_counter >
162 ,cds::opt::permutation_generator< cds::opt::v::random_permutation<> >
163 ,cds::opt::stat< cds::intrusive::segmented_queue::stat<> >
170 void HdrIntrusiveSegmentedQueue::SegmQueue_HP_cacheline_padding_bigdata()
172 struct queue_traits : public cds::intrusive::segmented_queue::traits
174 typedef Disposer disposer;
175 enum { padding = cds::opt::cache_line_padding | cds::opt::padding_tiny_data_only };
177 typedef cds::intrusive::SegmentedQueue< cds::gc::HP, big_item, queue_traits > queue_type;
182 void HdrIntrusiveSegmentedQueue::SegmQueue_HP_mutex_cacheline_padding_bigdata()
184 struct queue_traits : public
185 cds::intrusive::segmented_queue::make_traits <
186 cds::intrusive::opt::disposer< Disposer >
187 ,cds::opt::lock_type < std::mutex >
188 , cds::opt::padding< cds::opt::cache_line_padding | cds::opt::padding_tiny_data_only >
191 typedef cds::intrusive::SegmentedQueue< cds::gc::HP, big_item, queue_traits > queue_type;
196 void HdrIntrusiveSegmentedQueue::SegmQueue_HP_shuffle_cacheline_padding_bigdata()
198 typedef cds::intrusive::SegmentedQueue< cds::gc::HP, big_item,
199 cds::intrusive::segmented_queue::make_traits<
200 cds::intrusive::opt::disposer< Disposer >
201 ,cds::opt::item_counter< cds::atomicity::item_counter >
202 , cds::opt::padding< cds::opt::cache_line_padding | cds::opt::padding_tiny_data_only >
203 ,cds::opt::permutation_generator< cds::opt::v::random_shuffle_permutation<> >
210 void HdrIntrusiveSegmentedQueue::SegmQueue_HP_stat_cacheline_padding_bigdata()
212 typedef cds::intrusive::SegmentedQueue< cds::gc::HP, big_item,
213 cds::intrusive::segmented_queue::make_traits<
214 cds::intrusive::opt::disposer< Disposer >
215 , cds::opt::padding< cds::opt::cache_line_padding | cds::opt::padding_tiny_data_only >
216 ,cds::opt::item_counter< cds::atomicity::item_counter >
217 ,cds::opt::permutation_generator< cds::opt::v::random_permutation<> >
218 ,cds::opt::stat< cds::intrusive::segmented_queue::stat<> >