3 #include "tree/hdr_bronson_avltree_map.h"
4 #include <cds/urcu/signal_buffered.h>
5 #include <cds/container/bronson_avltree_map_rcu.h>
7 #include "unit/print_bronsonavltree_stat.h"
10 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
11 namespace cc = cds::container;
12 namespace co = cds::opt;
14 typedef cds::urcu::gc< cds::urcu::signal_buffered<> > rcu_type;
17 template <typename Tree>
18 void operator()( Tree const& t )
20 std::cout << t.statistics();
26 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_shb_less()
28 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
30 cc::bronson_avltree::make_traits<
31 co::less< std::less<key_type> >
32 ,cc::bronson_avltree::relaxed_insert< false >
35 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
36 test<map_type, print_stat>();
40 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_shb_less_stat()
42 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
44 cc::bronson_avltree::make_traits<
45 co::less< std::less<key_type> >
46 ,co::stat< cc::bronson_avltree::stat<> >
47 ,cc::bronson_avltree::relaxed_insert< false >
50 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
51 test<map_type, print_stat>();
55 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_shb_cmp()
57 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
59 cc::bronson_avltree::make_traits<
60 co::compare< compare >
63 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
64 test<map_type, print_stat>();
68 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_shb_cmp_stat()
70 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
72 cc::bronson_avltree::make_traits<
73 co::compare< compare >
74 ,co::stat< cc::bronson_avltree::stat<> >
77 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
78 test<map_type, print_stat>();
82 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_shb_cmpless()
84 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
86 cc::bronson_avltree::make_traits<
87 co::compare< compare >
88 ,co::less< std::less<key_type> >
91 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
92 test<map_type, print_stat>();
96 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_shb_less_ic()
98 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
100 cc::bronson_avltree::make_traits<
101 co::less< std::less<key_type> >
102 ,co::item_counter< cds::atomicity::item_counter >
105 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
106 test<map_type, print_stat>();
110 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_shb_cmp_ic()
112 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
113 struct traits: public
114 cc::bronson_avltree::make_traits<
115 co::compare< compare >
116 ,co::item_counter< cds::atomicity::item_counter >
119 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
120 test<map_type, print_stat>();
124 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_shb_cmp_ic_stat()
126 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
127 struct traits: public
128 cc::bronson_avltree::make_traits<
129 co::compare< compare >
130 ,co::item_counter< cds::atomicity::item_counter >
131 ,co::stat< cc::bronson_avltree::stat<> >
134 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
135 test<map_type, print_stat>();
139 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_shb_cmp_ic_stat_yield()
141 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
142 struct traits: public
143 cc::bronson_avltree::make_traits<
144 co::compare< compare >
145 ,co::item_counter< cds::atomicity::item_counter >
146 ,co::stat< cc::bronson_avltree::stat<> >
147 ,co::back_off< cds::backoff::yield >
150 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
151 test<map_type, print_stat>();
155 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_shb_less_relaxed_insert()
157 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
158 struct traits: public
159 cc::bronson_avltree::make_traits<
160 co::less< std::less<key_type> >
161 ,cc::bronson_avltree::relaxed_insert< true >
164 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
165 test<map_type, print_stat>();
169 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_shb_less_relaxed_insert_stat()
171 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
172 struct traits: public
173 cc::bronson_avltree::make_traits<
174 co::less< std::less<key_type> >
175 ,co::stat< cc::bronson_avltree::stat<> >
176 ,cc::bronson_avltree::relaxed_insert< true >
179 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
180 test<map_type, print_stat>();