3 #include "tree/hdr_bronson_avltree_map.h"
4 #include <cds/urcu/general_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"
14 namespace cc = cds::container;
15 namespace co = cds::opt;
17 typedef cds::urcu::gc< cds::urcu::general_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;
33 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_pool_monitor_less()
36 cc::bronson_avltree::make_traits<
37 co::less< std::less<key_type> >
38 ,co::sync_monitor< cds::sync::pool_monitor<simple_pool> >
41 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
42 test<map_type, print_stat>();
45 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_pool_monitor_less_stat()
48 cc::bronson_avltree::make_traits<
49 co::less< std::less<key_type> >
50 ,co::stat< cc::bronson_avltree::stat<> >
51 ,co::sync_monitor< cds::sync::pool_monitor<lazy_pool> >
52 ,cc::bronson_avltree::relaxed_insert< false >
55 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
56 test<map_type, print_stat>();
59 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_pool_monitor_cmp_ic_stat()
62 cc::bronson_avltree::make_traits<
63 co::compare< compare >
64 ,co::item_counter< cds::atomicity::item_counter >
65 ,co::stat< cc::bronson_avltree::stat<> >
66 ,co::sync_monitor< cds::sync::pool_monitor<bounded_pool> >
69 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
70 test<map_type, print_stat>();
73 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_pool_monitor_cmp_ic_stat_yield()
76 cc::bronson_avltree::make_traits<
77 co::compare< compare >
78 ,co::item_counter< cds::atomicity::item_counter >
79 ,co::stat< cc::bronson_avltree::stat<> >
80 ,co::back_off< cds::backoff::yield >
81 ,co::sync_monitor< cds::sync::pool_monitor<lazy_pool> >
84 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
85 test<map_type, print_stat>();
88 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_pool_monitor_less_relaxed_insert()
91 cc::bronson_avltree::make_traits<
92 co::less< std::less<key_type> >
93 ,cc::bronson_avltree::relaxed_insert< true >
94 ,co::sync_monitor< cds::sync::pool_monitor<lazy_pool> >
97 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
98 test<map_type, print_stat>();
101 void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_pool_monitor_less_relaxed_insert_stat()
103 struct traits: public
104 cc::bronson_avltree::make_traits<
105 co::less< std::less<key_type> >
106 ,co::stat< cc::bronson_avltree::stat<> >
107 ,cc::bronson_avltree::relaxed_insert< true >
108 ,co::sync_monitor< cds::sync::pool_monitor<simple_pool> >
111 typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
112 test<map_type, print_stat>();