3 #include "set/hdr_intrusive_skiplist_set.h"
5 #include <cds/intrusive/skip_list_dhp.h>
6 #include "map/print_skiplist_stat.h"
10 void IntrusiveSkipListSet::skiplist_ptb_base_cmp()
12 typedef base_int_item< ci::skip_list::node< cds::gc::PTB> > item;
14 typedef ci::SkipListSet< cds::gc::PTB, item,
15 ci::skip_list::make_traits<
16 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::PTB> > >
17 ,co::compare< cmp<item> >
18 ,ci::opt::disposer< faked_disposer >
19 ,co::item_counter< cds::atomicity::item_counter >
23 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
26 void IntrusiveSkipListSet::skiplist_ptb_base_less()
28 typedef base_int_item< ci::skip_list::node< cds::gc::PTB> > item;
30 typedef ci::SkipListSet< cds::gc::PTB, item,
31 ci::skip_list::make_traits<
32 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::PTB> > >
33 ,co::less< less<item> >
34 ,ci::opt::disposer< faked_disposer >
35 ,co::item_counter< cds::atomicity::item_counter >
39 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
42 void IntrusiveSkipListSet::skiplist_ptb_base_cmpmix()
44 typedef base_int_item< ci::skip_list::node< cds::gc::PTB> > item;
46 typedef ci::SkipListSet< cds::gc::PTB, item,
47 ci::skip_list::make_traits<
48 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::PTB> > >
49 ,co::less< less<item> >
50 ,ci::opt::disposer< faked_disposer >
51 ,co::item_counter< cds::atomicity::item_counter >
52 ,co::compare< cmp<item> >
56 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
59 void IntrusiveSkipListSet::skiplist_ptb_base_cmp_stat()
61 typedef base_int_item< ci::skip_list::node< cds::gc::PTB> > item;
63 typedef ci::SkipListSet< cds::gc::PTB, item,
64 ci::skip_list::make_traits<
65 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::PTB> > >
66 ,co::compare< cmp<item> >
67 ,ci::opt::disposer< faked_disposer >
68 ,co::stat< ci::skip_list::stat<> >
69 ,co::item_counter< cds::atomicity::item_counter >
73 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
76 void IntrusiveSkipListSet::skiplist_ptb_base_less_stat()
78 typedef base_int_item< ci::skip_list::node< cds::gc::PTB> > item;
80 typedef ci::SkipListSet< cds::gc::PTB, item,
81 ci::skip_list::make_traits<
82 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::PTB> > >
83 ,co::less< less<item> >
84 ,co::item_counter< cds::atomicity::item_counter >
85 ,ci::opt::disposer< faked_disposer >
86 ,co::stat< ci::skip_list::stat<> >
90 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
93 void IntrusiveSkipListSet::skiplist_ptb_base_cmpmix_stat()
95 typedef base_int_item< ci::skip_list::node< cds::gc::PTB> > item;
97 typedef ci::SkipListSet< cds::gc::PTB, item,
98 ci::skip_list::make_traits<
99 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::PTB> > >
100 ,co::less< less<item> >
101 ,ci::opt::disposer< faked_disposer >
102 ,co::compare< cmp<item> >
103 ,co::stat< ci::skip_list::stat<> >
104 ,co::item_counter< cds::atomicity::item_counter >
108 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
111 void IntrusiveSkipListSet::skiplist_ptb_base_cmp_xorshift()
113 typedef base_int_item< ci::skip_list::node< cds::gc::PTB> > item;
115 typedef ci::SkipListSet< cds::gc::PTB, item,
116 ci::skip_list::make_traits<
117 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::PTB> > >
118 ,co::compare< cmp<item> >
119 ,co::item_counter< cds::atomicity::item_counter >
120 ,ci::opt::disposer< faked_disposer >
121 ,ci::skip_list::random_level_generator< ci::skip_list::xorshift >
125 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
128 void IntrusiveSkipListSet::skiplist_ptb_base_less_xorshift()
130 typedef base_int_item< ci::skip_list::node< cds::gc::PTB> > item;
132 typedef ci::SkipListSet< cds::gc::PTB, item,
133 ci::skip_list::make_traits<
134 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::PTB> > >
135 ,co::less< less<item> >
136 ,ci::opt::disposer< faked_disposer >
137 ,ci::skip_list::random_level_generator< ci::skip_list::xorshift >
138 ,co::item_counter< cds::atomicity::item_counter >
142 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
145 void IntrusiveSkipListSet::skiplist_ptb_base_cmpmix_xorshift()
147 typedef base_int_item< ci::skip_list::node< cds::gc::PTB> > item;
149 typedef ci::SkipListSet< cds::gc::PTB, item,
150 ci::skip_list::make_traits<
151 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::PTB> > >
152 ,co::less< less<item> >
153 ,ci::opt::disposer< faked_disposer >
154 ,co::compare< cmp<item> >
155 ,co::item_counter< cds::atomicity::item_counter >
156 ,ci::skip_list::random_level_generator< ci::skip_list::xorshift >
160 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
163 void IntrusiveSkipListSet::skiplist_ptb_base_cmp_xorshift_stat()
165 typedef base_int_item< ci::skip_list::node< cds::gc::PTB> > item;
167 typedef ci::SkipListSet< cds::gc::PTB, item,
168 ci::skip_list::make_traits<
169 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::PTB> > >
170 ,co::compare< cmp<item> >
171 ,co::item_counter< cds::atomicity::item_counter >
172 ,ci::opt::disposer< faked_disposer >
173 ,ci::skip_list::random_level_generator< ci::skip_list::xorshift >
174 ,co::stat< ci::skip_list::stat<> >
178 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
181 void IntrusiveSkipListSet::skiplist_ptb_base_less_xorshift_stat()
183 typedef base_int_item< ci::skip_list::node< cds::gc::PTB> > item;
185 typedef ci::SkipListSet< cds::gc::PTB, item,
186 ci::skip_list::make_traits<
187 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::PTB> > >
188 ,co::less< less<item> >
189 ,ci::opt::disposer< faked_disposer >
190 ,co::item_counter< cds::atomicity::item_counter >
191 ,ci::skip_list::random_level_generator< ci::skip_list::xorshift >
192 ,co::stat< ci::skip_list::stat<> >
196 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
199 void IntrusiveSkipListSet::skiplist_ptb_base_cmpmix_xorshift_stat()
201 typedef base_int_item< ci::skip_list::node< cds::gc::PTB> > item;
203 typedef ci::SkipListSet< cds::gc::PTB, item,
204 ci::skip_list::make_traits<
205 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::PTB> > >
206 ,co::less< less<item> >
207 ,co::item_counter< cds::atomicity::item_counter >
208 ,ci::opt::disposer< faked_disposer >
209 ,co::compare< cmp<item> >
210 ,ci::skip_list::random_level_generator< ci::skip_list::xorshift >
211 ,co::stat< ci::skip_list::stat<> >
215 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
220 void IntrusiveSkipListSet::skiplist_ptb_base_cmp_pascal()
222 typedef base_int_item< ci::skip_list::node< cds::gc::PTB> > item;
224 typedef ci::SkipListSet< cds::gc::PTB, item,
225 ci::skip_list::make_traits<
226 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::PTB> > >
227 ,co::compare< cmp<item> >
228 ,co::item_counter< cds::atomicity::item_counter >
229 ,ci::opt::disposer< faked_disposer >
230 ,ci::skip_list::random_level_generator< ci::skip_list::turbo_pascal >
234 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
237 void IntrusiveSkipListSet::skiplist_ptb_base_less_pascal()
239 typedef base_int_item< ci::skip_list::node< cds::gc::PTB> > item;
241 typedef ci::SkipListSet< cds::gc::PTB, item,
242 ci::skip_list::make_traits<
243 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::PTB> > >
244 ,co::less< less<item> >
245 ,co::item_counter< cds::atomicity::item_counter >
246 ,ci::opt::disposer< faked_disposer >
247 ,ci::skip_list::random_level_generator< ci::skip_list::turbo_pascal >
251 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
254 void IntrusiveSkipListSet::skiplist_ptb_base_cmpmix_pascal()
256 typedef base_int_item< ci::skip_list::node< cds::gc::PTB> > item;
258 typedef ci::SkipListSet< cds::gc::PTB, item,
259 ci::skip_list::make_traits<
260 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::PTB> > >
261 ,co::less< less<item> >
262 ,ci::opt::disposer< faked_disposer >
263 ,co::compare< cmp<item> >
264 ,co::item_counter< cds::atomicity::item_counter >
265 ,ci::skip_list::random_level_generator< ci::skip_list::turbo_pascal >
269 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
272 void IntrusiveSkipListSet::skiplist_ptb_base_cmp_pascal_stat()
274 typedef base_int_item< ci::skip_list::node< cds::gc::PTB> > item;
276 typedef ci::SkipListSet< cds::gc::PTB, item,
277 ci::skip_list::make_traits<
278 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::PTB> > >
279 ,co::compare< cmp<item> >
280 ,ci::opt::disposer< faked_disposer >
281 ,ci::skip_list::random_level_generator< ci::skip_list::turbo_pascal >
282 ,co::stat< ci::skip_list::stat<> >
283 ,co::item_counter< cds::atomicity::item_counter >
287 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
290 void IntrusiveSkipListSet::skiplist_ptb_base_less_pascal_stat()
292 typedef base_int_item< ci::skip_list::node< cds::gc::PTB> > item;
294 typedef ci::SkipListSet< cds::gc::PTB, item,
295 ci::skip_list::make_traits<
296 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::PTB> > >
297 ,co::less< less<item> >
298 ,ci::opt::disposer< faked_disposer >
299 ,ci::skip_list::random_level_generator< ci::skip_list::turbo_pascal >
300 ,co::stat< ci::skip_list::stat<> >
301 ,co::item_counter< cds::atomicity::item_counter >
305 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();
308 void IntrusiveSkipListSet::skiplist_ptb_base_cmpmix_pascal_stat()
310 typedef base_int_item< ci::skip_list::node< cds::gc::PTB> > item;
312 typedef ci::SkipListSet< cds::gc::PTB, item,
313 ci::skip_list::make_traits<
314 ci::opt::hook< ci::skip_list::base_hook< co::gc<cds::gc::PTB> > >
315 ,co::less< less<item> >
316 ,ci::opt::disposer< faked_disposer >
317 ,co::compare< cmp<item> >
318 ,ci::skip_list::random_level_generator< ci::skip_list::turbo_pascal >
319 ,co::stat< ci::skip_list::stat<> >
320 ,co::item_counter< cds::atomicity::item_counter >
324 test_skiplist<set_type, misc::print_skiplist_stat<set_type::stat> >();