3 #include "ordered_list/hdr_intrusive_michael.h"
4 #include <cds/urcu/signal_buffered.h>
5 #include <cds/intrusive/michael_list_rcu.h>
8 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
10 typedef cds::urcu::gc< cds::urcu::signal_buffered<> > RCU;
14 void IntrusiveMichaelListHeaderTest::RCU_SHB_base_cmp()
16 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
17 typedef base_int_item< RCU > item;
18 typedef ci::MichaelList< RCU
20 ,ci::michael_list::make_traits<
21 ci::opt::hook< ci::michael_list::base_hook< co::gc<RCU> > >
22 ,co::compare< cmp<item> >
23 ,ci::opt::disposer< faked_disposer >
29 void IntrusiveMichaelListHeaderTest::RCU_SHB_base_less()
31 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
32 typedef base_int_item< RCU > item;
33 typedef ci::MichaelList< RCU
35 ,ci::michael_list::make_traits<
36 ci::opt::hook< ci::michael_list::base_hook< co::gc<RCU> > >
37 ,co::less< less<item> >
38 ,ci::opt::disposer< faked_disposer >
44 void IntrusiveMichaelListHeaderTest::RCU_SHB_base_cmpmix()
46 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
47 typedef base_int_item< RCU > item;
48 typedef ci::MichaelList< RCU
50 ,ci::michael_list::make_traits<
51 ci::opt::hook< ci::michael_list::base_hook< co::gc<RCU> > >
52 ,co::less< less<item> >
53 ,co::compare< cmp<item> >
54 ,ci::opt::disposer< faked_disposer >
60 void IntrusiveMichaelListHeaderTest::RCU_SHB_base_ic()
62 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
63 typedef base_int_item< RCU > item;
64 typedef ci::MichaelList< RCU
66 ,ci::michael_list::make_traits<
67 ci::opt::hook< ci::michael_list::base_hook< co::gc<RCU> > >
68 ,co::less< less<item> >
69 ,co::compare< cmp<item> >
70 ,ci::opt::disposer< faked_disposer >
71 ,co::item_counter< cds::atomicity::item_counter >
77 void IntrusiveMichaelListHeaderTest::RCU_SHB_member_cmp()
79 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
80 typedef member_int_item< RCU > item;
81 typedef ci::MichaelList< RCU
83 ,ci::michael_list::make_traits<
84 ci::opt::hook< ci::michael_list::member_hook<
85 offsetof( item, hMember ),
88 ,co::compare< cmp<item> >
89 ,ci::opt::disposer< faked_disposer >
95 void IntrusiveMichaelListHeaderTest::RCU_SHB_member_less()
97 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
98 typedef member_int_item< RCU > item;
99 typedef ci::MichaelList< RCU
101 ,ci::michael_list::make_traits<
102 ci::opt::hook< ci::michael_list::member_hook<
103 offsetof( item, hMember ),
106 ,co::less< less<item> >
107 ,ci::opt::disposer< faked_disposer >
110 test_rcu_int<list>();
113 void IntrusiveMichaelListHeaderTest::RCU_SHB_member_cmpmix()
115 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
116 typedef member_int_item< 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 ,co::compare< cmp<item> >
126 ,ci::opt::disposer< faked_disposer >
129 test_rcu_int<list>();
132 void IntrusiveMichaelListHeaderTest::RCU_SHB_member_ic()
134 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
135 typedef member_int_item< RCU > item;
136 typedef ci::MichaelList< RCU
138 ,ci::michael_list::make_traits<
139 ci::opt::hook< ci::michael_list::member_hook<
140 offsetof( item, hMember ),
143 ,co::compare< cmp<item> >
144 ,ci::opt::disposer< faked_disposer >
145 ,co::item_counter< cds::atomicity::item_counter >
148 test_rcu_int<list>();