3 #include "set/hdr_intrusive_set.h"
4 #include <cds/urcu/signal_buffered.h>
5 #include <cds/intrusive/michael_list_rcu.h>
6 #include <cds/intrusive/michael_set_rcu.h>
10 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
12 typedef cds::urcu::gc< cds::urcu::signal_buffered<> > RCU;
16 void IntrusiveHashSetHdrTest::RCU_SHB_base_cmp()
18 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
19 typedef base_int_item< ci::michael_list::node<RCU> > item;
20 typedef ci::MichaelList< RCU
22 ,ci::michael_list::make_traits<
23 ci::opt::hook< ci::michael_list::base_hook< co::gc<RCU> > >
24 ,co::compare< cmp<item> >
25 ,ci::opt::disposer< faked_disposer >
29 typedef ci::MichaelHashSet< RCU, bucket_type,
30 ci::michael_set::make_traits<
39 void IntrusiveHashSetHdrTest::RCU_SHB_base_less()
41 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
42 typedef base_int_item< ci::michael_list::node<RCU> > item;
43 typedef ci::MichaelList< RCU
45 ,ci::michael_list::make_traits<
46 ci::opt::hook< ci::michael_list::base_hook< co::gc<RCU> > >
47 ,co::less< less<item> >
48 ,ci::opt::disposer< faked_disposer >
52 typedef ci::MichaelHashSet< RCU, bucket_type,
53 ci::michael_set::make_traits<
62 void IntrusiveHashSetHdrTest::RCU_SHB_base_cmpmix()
64 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
65 typedef base_int_item< ci::michael_list::node<RCU> > item;
66 typedef ci::MichaelList< RCU
68 ,ci::michael_list::make_traits<
69 ci::opt::hook< ci::michael_list::base_hook< co::gc<RCU> > >
70 ,co::less< less<item> >
71 ,co::compare< cmp<item> >
72 ,ci::opt::disposer< faked_disposer >
76 typedef ci::MichaelHashSet< RCU, bucket_type,
77 ci::michael_set::make_traits<
79 ,co::item_counter< simple_item_counter >
87 void IntrusiveHashSetHdrTest::RCU_SHB_member_cmp()
89 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
90 typedef member_int_item< ci::michael_list::node<RCU> > item;
91 typedef ci::MichaelList< RCU
93 ,ci::michael_list::make_traits<
94 ci::opt::hook< ci::michael_list::member_hook<
95 offsetof( item, hMember ),
98 ,co::compare< cmp<item> >
99 ,ci::opt::disposer< faked_disposer >
103 typedef ci::MichaelHashSet< RCU, bucket_type,
104 ci::michael_set::make_traits<
113 void IntrusiveHashSetHdrTest::RCU_SHB_member_less()
115 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
116 typedef member_int_item< ci::michael_list::node<RCU> > item;
117 typedef ci::MichaelList< RCU
119 ,ci::michael_list::make_traits<
120 ci::opt::hook< ci::michael_list::member_hook<
121 offsetof( item, hMember ),
124 ,co::less< less<item> >
125 ,ci::opt::disposer< faked_disposer >
129 typedef ci::MichaelHashSet< RCU, bucket_type,
130 ci::michael_set::make_traits<
139 void IntrusiveHashSetHdrTest::RCU_SHB_member_cmpmix()
141 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
142 typedef member_int_item< ci::michael_list::node<RCU> > item;
143 typedef ci::MichaelList< RCU
145 ,ci::michael_list::make_traits<
146 ci::opt::hook< ci::michael_list::member_hook<
147 offsetof( item, hMember ),
150 ,co::compare< cmp<item> >
151 ,co::less< less<item> >
152 ,ci::opt::disposer< faked_disposer >
156 typedef ci::MichaelHashSet< RCU, bucket_type,
157 ci::michael_set::make_traits<
159 ,co::item_counter< simple_item_counter >