3 #include "set/hdr_intrusive_set.h"
4 #include <cds/urcu/signal_buffered.h>
5 #include <cds/intrusive/lazy_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_lazy()
18 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
19 typedef base_int_item< ci::lazy_list::node<RCU> > item;
20 typedef ci::LazyList< RCU
22 ,ci::lazy_list::make_traits<
23 ci::opt::hook< ci::lazy_list::base_hook< co::gc<RCU> > >
24 ,co::compare< cmp<item> >
25 ,ci::opt::disposer< faked_disposer >
26 ,ci::opt::back_off< cds::backoff::pause >
30 typedef ci::MichaelHashSet< RCU, bucket_type,
31 ci::michael_set::make_traits<
40 void IntrusiveHashSetHdrTest::RCU_SHB_base_less_lazy()
42 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
43 typedef base_int_item< ci::lazy_list::node<RCU> > item;
44 typedef ci::LazyList< RCU
46 ,ci::lazy_list::make_traits<
47 ci::opt::hook< ci::lazy_list::base_hook< co::gc<RCU> > >
48 ,co::less< less<item> >
49 ,ci::opt::disposer< faked_disposer >
53 typedef ci::MichaelHashSet< RCU, bucket_type,
54 ci::michael_set::make_traits<
63 void IntrusiveHashSetHdrTest::RCU_SHB_base_cmpmix_lazy()
65 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
66 typedef base_int_item< ci::lazy_list::node<RCU> > item;
67 typedef ci::LazyList< RCU
69 ,ci::lazy_list::make_traits<
70 ci::opt::hook< ci::lazy_list::base_hook< co::gc<RCU> > >
71 ,co::less< less<item> >
72 ,co::compare< cmp<item> >
73 ,ci::opt::disposer< faked_disposer >
77 typedef ci::MichaelHashSet< RCU, bucket_type,
78 ci::michael_set::make_traits<
80 ,co::item_counter< simple_item_counter >
88 void IntrusiveHashSetHdrTest::RCU_SHB_member_cmp_lazy()
90 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
91 typedef member_int_item< ci::lazy_list::node<RCU> > item;
92 typedef ci::LazyList< RCU
94 ,ci::lazy_list::make_traits<
95 ci::opt::hook< ci::lazy_list::member_hook<
96 offsetof( item, hMember ),
99 ,co::compare< cmp<item> >
100 ,ci::opt::disposer< faked_disposer >
104 typedef ci::MichaelHashSet< RCU, bucket_type,
105 ci::michael_set::make_traits<
114 void IntrusiveHashSetHdrTest::RCU_SHB_member_less_lazy()
116 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
117 typedef member_int_item< ci::lazy_list::node<RCU> > item;
118 typedef ci::LazyList< RCU
120 ,ci::lazy_list::make_traits<
121 ci::opt::hook< ci::lazy_list::member_hook<
122 offsetof( item, hMember ),
125 ,co::less< less<item> >
126 ,ci::opt::disposer< faked_disposer >
130 typedef ci::MichaelHashSet< RCU, bucket_type,
131 ci::michael_set::make_traits<
140 void IntrusiveHashSetHdrTest::RCU_SHB_member_cmpmix_lazy()
142 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
143 typedef member_int_item< ci::lazy_list::node<RCU> > item;
144 typedef ci::LazyList< RCU
146 ,ci::lazy_list::make_traits<
147 ci::opt::hook< ci::lazy_list::member_hook<
148 offsetof( item, hMember ),
151 ,co::compare< cmp<item> >
152 ,co::less< less<item> >
153 ,ci::opt::disposer< faked_disposer >
157 typedef ci::MichaelHashSet< RCU, bucket_type,
158 ci::michael_set::make_traits<
160 ,co::item_counter< simple_item_counter >