3 #include "set/hdr_intrusive_set.h"
4 #include <cds/urcu/general_instant.h>
5 #include <cds/intrusive/lazy_list_rcu.h>
6 #include <cds/intrusive/michael_set_rcu.h>
10 typedef cds::urcu::gc< cds::urcu::general_instant<> > RCU;
13 void IntrusiveHashSetHdrTest::RCU_GPI_base_cmp_lazy()
15 typedef base_int_item< ci::lazy_list::node<RCU> > item;
17 public ci::lazy_list::make_traits<
18 ci::opt::hook< ci::lazy_list::base_hook< co::gc<RCU> > >
19 ,co::compare< cmp<item> >
20 ,ci::opt::disposer< faked_disposer >
21 ,ci::opt::back_off< cds::backoff::pause >
25 typedef ci::LazyList< RCU, item, list_traits > bucket_type;
27 struct set_traits : public ci::michael_set::traits
29 typedef hash_int hash;
31 typedef ci::MichaelHashSet< RCU, bucket_type, set_traits > set;
36 void IntrusiveHashSetHdrTest::RCU_GPI_base_less_lazy()
38 typedef base_int_item< ci::lazy_list::node<RCU> > item;
39 typedef ci::LazyList< RCU
41 ,ci::lazy_list::make_traits<
42 ci::opt::hook< ci::lazy_list::base_hook< co::gc<RCU> > >
43 ,co::less< less<item> >
44 ,ci::opt::disposer< faked_disposer >
48 typedef ci::MichaelHashSet< RCU, bucket_type,
49 ci::michael_set::make_traits<
57 void IntrusiveHashSetHdrTest::RCU_GPI_base_cmpmix_lazy()
59 typedef base_int_item< ci::lazy_list::node<RCU> > item;
60 typedef ci::LazyList< RCU
62 ,ci::lazy_list::make_traits<
63 ci::opt::hook< ci::lazy_list::base_hook< co::gc<RCU> > >
64 ,co::less< less<item> >
65 ,co::compare< cmp<item> >
66 ,ci::opt::disposer< faked_disposer >
70 typedef ci::MichaelHashSet< RCU, bucket_type,
71 ci::michael_set::make_traits<
73 ,co::item_counter< simple_item_counter >
80 void IntrusiveHashSetHdrTest::RCU_GPI_member_cmp_lazy()
82 typedef member_int_item< ci::lazy_list::node<RCU> > item;
83 typedef ci::LazyList< RCU
85 ,ci::lazy_list::make_traits<
86 ci::opt::hook< ci::lazy_list::member_hook<
87 offsetof( item, hMember ),
90 ,co::compare< cmp<item> >
91 ,ci::opt::disposer< faked_disposer >
95 typedef ci::MichaelHashSet< RCU, bucket_type,
96 ci::michael_set::make_traits<
104 void IntrusiveHashSetHdrTest::RCU_GPI_member_less_lazy()
106 typedef member_int_item< ci::lazy_list::node<RCU> > item;
107 typedef ci::LazyList< RCU
109 ,ci::lazy_list::make_traits<
110 ci::opt::hook< ci::lazy_list::member_hook<
111 offsetof( item, hMember ),
114 ,co::less< less<item> >
115 ,ci::opt::disposer< faked_disposer >
119 typedef ci::MichaelHashSet< RCU, bucket_type,
120 ci::michael_set::make_traits<
128 void IntrusiveHashSetHdrTest::RCU_GPI_member_cmpmix_lazy()
130 typedef member_int_item< ci::lazy_list::node<RCU> > item;
131 typedef ci::LazyList< RCU
133 ,ci::lazy_list::make_traits<
134 ci::opt::hook< ci::lazy_list::member_hook<
135 offsetof( item, hMember ),
138 ,co::compare< cmp<item> >
139 ,co::less< less<item> >
140 ,ci::opt::disposer< faked_disposer >
144 typedef ci::MichaelHashSet< RCU, bucket_type,
145 ci::michael_set::make_traits<
147 ,co::item_counter< simple_item_counter >