3 #include "ordered_list/hdr_intrusive_lazy.h"
4 #include <cds/urcu/signal_buffered.h>
5 #include <cds/intrusive/lazy_list_rcu.h>
8 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
10 typedef cds::urcu::gc< cds::urcu::signal_buffered<> > RCU;
14 void IntrusiveLazyListHeaderTest::RCU_SHB_base_cmp()
16 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
17 typedef base_int_item< RCU > item;
18 typedef ci::lazy_list::make_traits<
19 ci::opt::hook< ci::lazy_list::base_hook< co::gc<RCU> > >
20 ,co::compare< cmp<item> >
21 ,ci::opt::disposer< faked_disposer >
23 typedef ci::LazyList< RCU, item, list_traits > list;
29 void IntrusiveLazyListHeaderTest::RCU_SHB_base_less()
31 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
32 typedef base_int_item< RCU > item;
33 typedef ci::LazyList< RCU
35 ,ci::lazy_list::make_traits<
36 ci::opt::hook< ci::lazy_list::base_hook< co::gc<RCU> > >
37 ,co::less< less<item> >
38 ,ci::opt::disposer< faked_disposer >
45 void IntrusiveLazyListHeaderTest::RCU_SHB_base_cmpmix()
47 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
48 typedef base_int_item< RCU > item;
49 typedef ci::LazyList< RCU
51 ,ci::lazy_list::make_traits<
52 ci::opt::hook< ci::lazy_list::base_hook< co::gc<RCU> > >
53 ,co::less< less<item> >
54 ,co::compare< cmp<item> >
55 ,ci::opt::disposer< faked_disposer >
62 void IntrusiveLazyListHeaderTest::RCU_SHB_base_ic()
64 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
65 typedef base_int_item< RCU > item;
66 typedef ci::LazyList< RCU
68 ,ci::lazy_list::make_traits<
69 ci::opt::hook< ci::lazy_list::base_hook< co::gc<RCU> > >
70 ,co::less< less<item> >
71 ,co::compare< cmp<item> >
72 ,ci::opt::disposer< faked_disposer >
73 ,co::item_counter< cds::atomicity::item_counter >
80 void IntrusiveLazyListHeaderTest::RCU_SHB_member_cmp()
82 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
83 typedef member_int_item< RCU > item;
84 typedef ci::LazyList< RCU
86 ,ci::lazy_list::make_traits<
87 ci::opt::hook< ci::lazy_list::member_hook<
88 offsetof( item, hMember ),
91 ,co::compare< cmp<item> >
92 ,ci::opt::disposer< faked_disposer >
99 void IntrusiveLazyListHeaderTest::RCU_SHB_member_less()
101 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
102 typedef member_int_item< RCU > item;
103 typedef ci::LazyList< RCU
105 ,ci::lazy_list::make_traits<
106 ci::opt::hook< ci::lazy_list::member_hook<
107 offsetof( item, hMember ),
110 ,co::less< less<item> >
111 ,ci::opt::disposer< faked_disposer >
114 test_rcu_int<list>();
118 void IntrusiveLazyListHeaderTest::RCU_SHB_member_cmpmix()
120 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
121 typedef member_int_item< RCU > item;
122 typedef ci::LazyList< RCU
124 ,ci::lazy_list::make_traits<
125 ci::opt::hook< ci::lazy_list::member_hook<
126 offsetof( item, hMember ),
129 ,co::less< less<item> >
130 ,co::compare< cmp<item> >
131 ,ci::opt::disposer< faked_disposer >
134 test_rcu_int<list>();
138 void IntrusiveLazyListHeaderTest::RCU_SHB_member_ic()
140 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
141 typedef member_int_item< RCU > item;
142 typedef ci::LazyList< RCU
144 ,ci::lazy_list::make_traits<
145 ci::opt::hook< ci::lazy_list::member_hook<
146 offsetof( item, hMember ),
149 ,co::compare< cmp<item> >
150 ,ci::opt::disposer< faked_disposer >
151 ,co::item_counter< cds::atomicity::item_counter >
154 test_rcu_int<list>();
158 } // namespace ordlist