3 #include "tree/hdr_bronson_avltree_map.h"
4 #include <cds/urcu/signal_threaded.h>
5 #include <cds/container/bronson_avltree_map_rcu.h>
6 #include <cds/sync/pool_monitor.h>
7 #include <cds/memory/vyukov_queue_pool.h>
9 #include "unit/print_bronsonavltree_stat.h"
10 #include "unit/print_sync_monitor_stat.h"
13 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
14 namespace cc = cds::container;
15 namespace co = cds::opt;
17 typedef cds::urcu::gc< cds::urcu::signal_threaded<> > rcu_type;
20 template <typename Tree>
21 void operator()( Tree const& t )
23 std::cout << t.statistics();
24 std::cout << t.monitor().statistics();
28 typedef cds::memory::vyukov_queue_pool< std::mutex > simple_pool;
29 typedef cds::memory::lazy_vyukov_queue_pool< std::mutex > lazy_pool;
30 typedef cds::memory::bounded_vyukov_queue_pool< std::mutex > bounded_pool;
34 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_sht_pool_monitor_less()
36 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
38 cc::bronson_avltree::make_traits<
39 co::less< std::less<key_type> >
40 ,co::sync_monitor< cds::sync::pool_monitor<simple_pool> >
43 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
44 test<map_type, print_stat>();
48 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_sht_pool_monitor_less_stat()
50 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
52 cc::bronson_avltree::make_traits<
53 co::less< std::less<key_type> >
54 ,co::stat< cc::bronson_avltree::stat<> >
55 ,co::sync_monitor< cds::sync::pool_monitor<lazy_pool> >
56 ,cc::bronson_avltree::relaxed_insert< false >
59 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
60 test<map_type, print_stat>();
64 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_sht_pool_monitor_cmp_ic_stat()
66 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
68 cc::bronson_avltree::make_traits<
69 co::compare< compare >
70 ,co::item_counter< cds::atomicity::item_counter >
71 ,co::stat< cc::bronson_avltree::stat<> >
72 ,co::sync_monitor< cds::sync::pool_monitor<bounded_pool> >
75 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
76 test<map_type, print_stat>();
80 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_sht_pool_monitor_cmp_ic_stat_yield()
82 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
84 cc::bronson_avltree::make_traits<
85 co::compare< compare >
86 ,co::item_counter< cds::atomicity::item_counter >
87 ,co::stat< cc::bronson_avltree::stat<> >
88 ,co::back_off< cds::backoff::yield >
89 ,co::sync_monitor< cds::sync::pool_monitor<lazy_pool> >
92 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
93 test<map_type, print_stat>();
97 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_sht_pool_monitor_less_relaxed_insert()
99 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
100 struct traits: public
101 cc::bronson_avltree::make_traits<
102 co::less< std::less<key_type> >
103 ,cc::bronson_avltree::relaxed_insert< true >
104 ,co::sync_monitor< cds::sync::pool_monitor<lazy_pool> >
107 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
108 test<map_type, print_stat>();
112 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_sht_pool_monitor_less_relaxed_insert_stat()
114 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
115 struct traits: public
116 cc::bronson_avltree::make_traits<
117 co::less< std::less<key_type> >
118 ,co::stat< cc::bronson_avltree::stat<> >
119 ,cc::bronson_avltree::relaxed_insert< true >
120 ,co::sync_monitor< cds::sync::pool_monitor<simple_pool> >
123 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
124 test<map_type, print_stat>();