3 #include "ordered_list/hdr_lazy.h"
4 #include <cds/urcu/signal_buffered.h>
5 #include <cds/container/lazy_list_rcu.h>
8 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
10 typedef cds::urcu::gc< cds::urcu::signal_buffered<> > rcu_type;
12 struct RCU_SHB_cmp_traits: public cc::lazy_list::type_traits
14 typedef LazyListTestHeader::cmp<LazyListTestHeader::item> compare;
18 void LazyListTestHeader::RCU_SHB_cmp()
20 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
21 // traits-based version
22 typedef cc::LazyList< rcu_type, item, RCU_SHB_cmp_traits > list;
25 // option-based version
27 typedef cc::LazyList< rcu_type, item,
28 cc::lazy_list::make_traits<
29 cc::opt::compare< cmp<item> >
32 test_rcu< opt_list >();
36 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
38 struct RCU_SHB_less_traits: public cc::lazy_list::type_traits
40 typedef LazyListTestHeader::lt<LazyListTestHeader::item> less;
44 void LazyListTestHeader::RCU_SHB_less()
46 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
47 // traits-based version
48 typedef cc::LazyList< rcu_type, item, RCU_SHB_less_traits > list;
51 // option-based version
53 typedef cc::LazyList< rcu_type, item,
54 cc::lazy_list::make_traits<
55 cc::opt::less< lt<item> >
58 test_rcu< opt_list >();
62 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
64 struct RCU_SHB_cmpmix_traits: public cc::lazy_list::type_traits
66 typedef LazyListTestHeader::cmp<LazyListTestHeader::item> compare;
67 typedef LazyListTestHeader::lt<LazyListTestHeader::item> less;
71 void LazyListTestHeader::RCU_SHB_cmpmix()
73 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
74 // traits-based version
75 typedef cc::LazyList< rcu_type, item, RCU_SHB_cmpmix_traits > list;
78 // option-based version
80 typedef cc::LazyList< rcu_type, item,
81 cc::lazy_list::make_traits<
82 cc::opt::compare< cmp<item> >
83 ,cc::opt::less< lt<item> >
86 test_rcu< opt_list >();
90 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
92 struct RCU_SHB_ic_traits: public cc::lazy_list::type_traits
94 typedef LazyListTestHeader::lt<LazyListTestHeader::item> less;
95 typedef cds::atomicity::item_counter item_counter;
99 void LazyListTestHeader::RCU_SHB_ic()
101 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
102 // traits-based version
103 typedef cc::LazyList< rcu_type, item, RCU_SHB_ic_traits > list;
106 // option-based version
108 typedef cc::LazyList< rcu_type, item,
109 cc::lazy_list::make_traits<
110 cc::opt::less< lt<item> >
111 ,cc::opt::item_counter< cds::atomicity::item_counter >
114 test_rcu< opt_list >();
118 } // namespace ordlist