<ItemGroup>\r
<ClCompile Include="..\..\..\tests\test-hdr\tree\hdr_bronson_avltree_map_rcu_gpb.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\tree\hdr_bronson_avltree_map_rcu_gpb_pool_monitor.cpp" />\r
+ <ClCompile Include="..\..\..\tests\test-hdr\tree\hdr_bronson_avltree_map_rcu_gpi.cpp" />\r
+ <ClCompile Include="..\..\..\tests\test-hdr\tree\hdr_bronson_avltree_map_rcu_gpi_pool_monitor.cpp" />\r
+ <ClCompile Include="..\..\..\tests\test-hdr\tree\hdr_bronson_avltree_map_rcu_gpt.cpp" />\r
+ <ClCompile Include="..\..\..\tests\test-hdr\tree\hdr_bronson_avltree_map_rcu_gpt_pool_monitor.cpp" />\r
+ <ClCompile Include="..\..\..\tests\test-hdr\tree\hdr_bronson_avltree_map_rcu_shb.cpp" />\r
+ <ClCompile Include="..\..\..\tests\test-hdr\tree\hdr_bronson_avltree_map_rcu_shb_pool_monitor.cpp" />\r
+ <ClCompile Include="..\..\..\tests\test-hdr\tree\hdr_bronson_avltree_map_rcu_sht.cpp" />\r
+ <ClCompile Include="..\..\..\tests\test-hdr\tree\hdr_bronson_avltree_map_rcu_sht_pool_monitor.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\tree\hdr_ellenbintree_map_dhp.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\tree\hdr_ellenbintree_map_hp.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\tree\hdr_ellenbintree_map_rcu_gpb.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\tree\hdr_bronson_avltree_map_rcu_gpb_pool_monitor.cpp">\r
<Filter>container</Filter>\r
</ClCompile>\r
+ <ClCompile Include="..\..\..\tests\test-hdr\tree\hdr_bronson_avltree_map_rcu_gpi.cpp">\r
+ <Filter>container</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="..\..\..\tests\test-hdr\tree\hdr_bronson_avltree_map_rcu_gpi_pool_monitor.cpp">\r
+ <Filter>container</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="..\..\..\tests\test-hdr\tree\hdr_bronson_avltree_map_rcu_gpt.cpp">\r
+ <Filter>container</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="..\..\..\tests\test-hdr\tree\hdr_bronson_avltree_map_rcu_gpt_pool_monitor.cpp">\r
+ <Filter>container</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="..\..\..\tests\test-hdr\tree\hdr_bronson_avltree_map_rcu_shb.cpp">\r
+ <Filter>container</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="..\..\..\tests\test-hdr\tree\hdr_bronson_avltree_map_rcu_shb_pool_monitor.cpp">\r
+ <Filter>container</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="..\..\..\tests\test-hdr\tree\hdr_bronson_avltree_map_rcu_sht.cpp">\r
+ <Filter>container</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="..\..\..\tests\test-hdr\tree\hdr_bronson_avltree_map_rcu_sht_pool_monitor.cpp">\r
+ <Filter>container</Filter>\r
+ </ClCompile>\r
</ItemGroup>\r
</Project>
\ No newline at end of file
tests/test-hdr/tree/hdr_ellenbintree_set_rcu_gpi.cpp \
tests/test-hdr/tree/hdr_ellenbintree_set_rcu_gpt.cpp \
tests/test-hdr/tree/hdr_ellenbintree_set_rcu_shb.cpp \
- tests/test-hdr/tree/hdr_ellenbintree_set_rcu_sht.cpp
+ tests/test-hdr/tree/hdr_ellenbintree_set_rcu_sht.cpp \
+ tests/test-hdr/tree/hdr_bronson_avltree_map_rcu_gpb.cpp \
+ tests/test-hdr/tree/hdr_bronson_avltree_map_rcu_gpb_pool_monitor.cpp \
+ tests/test-hdr/tree/hdr_bronson_avltree_map_rcu_gpi.cpp \
+ tests/test-hdr/tree/hdr_bronson_avltree_map_rcu_gpi_pool_monitor.cpp \
+ tests/test-hdr/tree/hdr_bronson_avltree_map_rcu_gpt.cpp \
+ tests/test-hdr/tree/hdr_bronson_avltree_map_rcu_gpt_pool_monitor.cpp \
+ tests/test-hdr/tree/hdr_bronson_avltree_map_rcu_shb.cpp \
+ tests/test-hdr/tree/hdr_bronson_avltree_map_rcu_shb_pool_monitor.cpp \
+ tests/test-hdr/tree/hdr_bronson_avltree_map_rcu_sht.cpp \
+ tests/test-hdr/tree/hdr_bronson_avltree_map_rcu_sht_pool_monitor.cpp \
+
CDS_TESTHDR_MISC := \
tests/test-hdr/misc/cxx11_atomic_class.cpp \
PrintStat()(s);
}
+ void BronsonAVLTree_rcu_gpi_less();
+ void BronsonAVLTree_rcu_gpi_less_stat();
+ void BronsonAVLTree_rcu_gpi_cmp();
+ void BronsonAVLTree_rcu_gpi_cmp_stat();
+ void BronsonAVLTree_rcu_gpi_cmpless();
+ void BronsonAVLTree_rcu_gpi_less_ic();
+ void BronsonAVLTree_rcu_gpi_cmp_ic();
+ void BronsonAVLTree_rcu_gpi_cmp_ic_stat();
+ void BronsonAVLTree_rcu_gpi_cmp_ic_stat_yield();
+ void BronsonAVLTree_rcu_gpi_less_relaxed_insert();
+ void BronsonAVLTree_rcu_gpi_less_relaxed_insert_stat();
+ void BronsonAVLTree_rcu_gpi_pool_monitor_less();
+ void BronsonAVLTree_rcu_gpi_pool_monitor_less_stat();
+ void BronsonAVLTree_rcu_gpi_pool_monitor_cmp_ic_stat();
+ void BronsonAVLTree_rcu_gpi_pool_monitor_cmp_ic_stat_yield();
+ void BronsonAVLTree_rcu_gpi_pool_monitor_less_relaxed_insert();
+ void BronsonAVLTree_rcu_gpi_pool_monitor_less_relaxed_insert_stat();
void BronsonAVLTree_rcu_gpb_less();
void BronsonAVLTree_rcu_gpb_less_stat();
void BronsonAVLTree_rcu_gpb_pool_monitor_less_relaxed_insert();
void BronsonAVLTree_rcu_gpb_pool_monitor_less_relaxed_insert_stat();
+ void BronsonAVLTree_rcu_gpt_less();
+ void BronsonAVLTree_rcu_gpt_less_stat();
+ void BronsonAVLTree_rcu_gpt_cmp();
+ void BronsonAVLTree_rcu_gpt_cmp_stat();
+ void BronsonAVLTree_rcu_gpt_cmpless();
+ void BronsonAVLTree_rcu_gpt_less_ic();
+ void BronsonAVLTree_rcu_gpt_cmp_ic();
+ void BronsonAVLTree_rcu_gpt_cmp_ic_stat();
+ void BronsonAVLTree_rcu_gpt_cmp_ic_stat_yield();
+ void BronsonAVLTree_rcu_gpt_less_relaxed_insert();
+ void BronsonAVLTree_rcu_gpt_less_relaxed_insert_stat();
+ void BronsonAVLTree_rcu_gpt_pool_monitor_less();
+ void BronsonAVLTree_rcu_gpt_pool_monitor_less_stat();
+ void BronsonAVLTree_rcu_gpt_pool_monitor_cmp_ic_stat();
+ void BronsonAVLTree_rcu_gpt_pool_monitor_cmp_ic_stat_yield();
+ void BronsonAVLTree_rcu_gpt_pool_monitor_less_relaxed_insert();
+ void BronsonAVLTree_rcu_gpt_pool_monitor_less_relaxed_insert_stat();
+
+ void BronsonAVLTree_rcu_shb_less();
+ void BronsonAVLTree_rcu_shb_less_stat();
+ void BronsonAVLTree_rcu_shb_cmp();
+ void BronsonAVLTree_rcu_shb_cmp_stat();
+ void BronsonAVLTree_rcu_shb_cmpless();
+ void BronsonAVLTree_rcu_shb_less_ic();
+ void BronsonAVLTree_rcu_shb_cmp_ic();
+ void BronsonAVLTree_rcu_shb_cmp_ic_stat();
+ void BronsonAVLTree_rcu_shb_cmp_ic_stat_yield();
+ void BronsonAVLTree_rcu_shb_less_relaxed_insert();
+ void BronsonAVLTree_rcu_shb_less_relaxed_insert_stat();
+ void BronsonAVLTree_rcu_shb_pool_monitor_less();
+ void BronsonAVLTree_rcu_shb_pool_monitor_less_stat();
+ void BronsonAVLTree_rcu_shb_pool_monitor_cmp_ic_stat();
+ void BronsonAVLTree_rcu_shb_pool_monitor_cmp_ic_stat_yield();
+ void BronsonAVLTree_rcu_shb_pool_monitor_less_relaxed_insert();
+ void BronsonAVLTree_rcu_shb_pool_monitor_less_relaxed_insert_stat();
+
+ void BronsonAVLTree_rcu_sht_less();
+ void BronsonAVLTree_rcu_sht_less_stat();
+ void BronsonAVLTree_rcu_sht_cmp();
+ void BronsonAVLTree_rcu_sht_cmp_stat();
+ void BronsonAVLTree_rcu_sht_cmpless();
+ void BronsonAVLTree_rcu_sht_less_ic();
+ void BronsonAVLTree_rcu_sht_cmp_ic();
+ void BronsonAVLTree_rcu_sht_cmp_ic_stat();
+ void BronsonAVLTree_rcu_sht_cmp_ic_stat_yield();
+ void BronsonAVLTree_rcu_sht_less_relaxed_insert();
+ void BronsonAVLTree_rcu_sht_less_relaxed_insert_stat();
+ void BronsonAVLTree_rcu_sht_pool_monitor_less();
+ void BronsonAVLTree_rcu_sht_pool_monitor_less_stat();
+ void BronsonAVLTree_rcu_sht_pool_monitor_cmp_ic_stat();
+ void BronsonAVLTree_rcu_sht_pool_monitor_cmp_ic_stat_yield();
+ void BronsonAVLTree_rcu_sht_pool_monitor_less_relaxed_insert();
+ void BronsonAVLTree_rcu_sht_pool_monitor_less_relaxed_insert_stat();
+
CPPUNIT_TEST_SUITE( BronsonAVLTreeHdrTest )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpi_less )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpi_less_stat )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpi_cmp )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpi_cmp_stat )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpi_cmpless )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpi_less_ic )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpi_cmp_ic )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpi_cmp_ic_stat )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpi_cmp_ic_stat_yield )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpi_less_relaxed_insert )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpi_less_relaxed_insert_stat )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpi_pool_monitor_less )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpi_pool_monitor_less_stat )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpi_pool_monitor_cmp_ic_stat )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpi_pool_monitor_cmp_ic_stat_yield )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpi_pool_monitor_less_relaxed_insert )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpi_pool_monitor_less_relaxed_insert_stat )
+
CPPUNIT_TEST( BronsonAVLTree_rcu_gpb_less )
CPPUNIT_TEST( BronsonAVLTree_rcu_gpb_less_stat )
CPPUNIT_TEST( BronsonAVLTree_rcu_gpb_cmp )
CPPUNIT_TEST( BronsonAVLTree_rcu_gpb_pool_monitor_cmp_ic_stat_yield )
CPPUNIT_TEST( BronsonAVLTree_rcu_gpb_pool_monitor_less_relaxed_insert )
CPPUNIT_TEST( BronsonAVLTree_rcu_gpb_pool_monitor_less_relaxed_insert_stat )
+
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpt_less )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpt_less_stat )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpt_cmp )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpt_cmp_stat )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpt_cmpless )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpt_less_ic )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpt_cmp_ic )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpt_cmp_ic_stat )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpt_cmp_ic_stat_yield )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpt_less_relaxed_insert )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpt_less_relaxed_insert_stat )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpt_pool_monitor_less )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpt_pool_monitor_less_stat )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpt_pool_monitor_cmp_ic_stat )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpt_pool_monitor_cmp_ic_stat_yield )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpt_pool_monitor_less_relaxed_insert )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_gpt_pool_monitor_less_relaxed_insert_stat )
+
+ CPPUNIT_TEST( BronsonAVLTree_rcu_shb_less )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_shb_less_stat )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_shb_cmp )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_shb_cmp_stat )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_shb_cmpless )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_shb_less_ic )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_shb_cmp_ic )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_shb_cmp_ic_stat )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_shb_cmp_ic_stat_yield )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_shb_less_relaxed_insert )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_shb_less_relaxed_insert_stat )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_shb_pool_monitor_less )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_shb_pool_monitor_less_stat )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_shb_pool_monitor_cmp_ic_stat )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_shb_pool_monitor_cmp_ic_stat_yield )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_shb_pool_monitor_less_relaxed_insert )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_shb_pool_monitor_less_relaxed_insert_stat )
+
+ CPPUNIT_TEST( BronsonAVLTree_rcu_sht_less )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_sht_less_stat )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_sht_cmp )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_sht_cmp_stat )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_sht_cmpless )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_sht_less_ic )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_sht_cmp_ic )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_sht_cmp_ic_stat )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_sht_cmp_ic_stat_yield )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_sht_less_relaxed_insert )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_sht_less_relaxed_insert_stat )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_sht_pool_monitor_less )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_sht_pool_monitor_less_stat )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_sht_pool_monitor_cmp_ic_stat )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_sht_pool_monitor_cmp_ic_stat_yield )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_sht_pool_monitor_less_relaxed_insert )
+ CPPUNIT_TEST( BronsonAVLTree_rcu_sht_pool_monitor_less_relaxed_insert_stat )
+
CPPUNIT_TEST_SUITE_END()
};
} // namespace tree
--- /dev/null
+//$$CDS-header$$
+
+#include "tree/hdr_bronson_avltree_map.h"
+#include <cds/urcu/general_instant.h>
+#include <cds/container/bronson_avltree_map_rcu.h>
+
+#include "unit/print_bronsonavltree_stat.h"
+
+namespace tree {
+ namespace cc = cds::container;
+ namespace co = cds::opt;
+ namespace {
+ typedef cds::urcu::gc< cds::urcu::general_instant<> > rcu_type;
+
+ struct print_stat {
+ template <typename Tree>
+ void operator()( Tree const& t )
+ {
+ std::cout << t.statistics();
+ }
+ };
+ } // namespace
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpi_less()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,cc::bronson_avltree::relaxed_insert< false >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpi_less_stat()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ ,cc::bronson_avltree::relaxed_insert< false >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpi_cmp()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpi_cmp_stat()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpi_cmpless()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ ,co::less< std::less<key_type> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpi_less_ic()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,co::item_counter< cds::atomicity::item_counter >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpi_cmp_ic()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ ,co::item_counter< cds::atomicity::item_counter >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpi_cmp_ic_stat()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ ,co::item_counter< cds::atomicity::item_counter >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpi_cmp_ic_stat_yield()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ ,co::item_counter< cds::atomicity::item_counter >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ ,co::back_off< cds::backoff::yield >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpi_less_relaxed_insert()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,cc::bronson_avltree::relaxed_insert< true >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpi_less_relaxed_insert_stat()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ ,cc::bronson_avltree::relaxed_insert< true >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+} // namespace tree
--- /dev/null
+//$$CDS-header$$
+
+#include "tree/hdr_bronson_avltree_map.h"
+#include <cds/urcu/general_instant.h>
+#include <cds/container/bronson_avltree_map_rcu.h>
+#include <cds/sync/pool_monitor.h>
+#include <cds/memory/vyukov_queue_pool.h>
+
+#include "unit/print_bronsonavltree_stat.h"
+
+namespace tree {
+ namespace cc = cds::container;
+ namespace co = cds::opt;
+ namespace {
+ typedef cds::urcu::gc< cds::urcu::general_instant<> > rcu_type;
+
+ struct print_stat {
+ template <typename Tree>
+ void operator()( Tree const& t )
+ {
+ std::cout << t.statistics();
+ }
+ };
+
+ typedef cds::memory::vyukov_queue_pool< std::mutex > simple_pool;
+ typedef cds::memory::lazy_vyukov_queue_pool< std::mutex > lazy_pool;
+ typedef cds::memory::bounded_vyukov_queue_pool< std::mutex > bounded_pool;
+ } // namespace
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpi_pool_monitor_less()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,co::sync_monitor< cds::sync::pool_monitor<simple_pool> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpi_pool_monitor_less_stat()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ ,co::sync_monitor< cds::sync::pool_monitor<lazy_pool> >
+ ,cc::bronson_avltree::relaxed_insert< false >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpi_pool_monitor_cmp_ic_stat()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ ,co::item_counter< cds::atomicity::item_counter >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ ,co::sync_monitor< cds::sync::pool_monitor<bounded_pool> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpi_pool_monitor_cmp_ic_stat_yield()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ ,co::item_counter< cds::atomicity::item_counter >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ ,co::back_off< cds::backoff::yield >
+ ,co::sync_monitor< cds::sync::pool_monitor<lazy_pool> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpi_pool_monitor_less_relaxed_insert()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,cc::bronson_avltree::relaxed_insert< true >
+ ,co::sync_monitor< cds::sync::pool_monitor<lazy_pool> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpi_pool_monitor_less_relaxed_insert_stat()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ ,cc::bronson_avltree::relaxed_insert< true >
+ ,co::sync_monitor< cds::sync::pool_monitor<simple_pool> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+} // namespace tree
--- /dev/null
+//$$CDS-header$$
+
+#include "tree/hdr_bronson_avltree_map.h"
+#include <cds/urcu/general_threaded.h>
+#include <cds/container/bronson_avltree_map_rcu.h>
+
+#include "unit/print_bronsonavltree_stat.h"
+
+namespace tree {
+ namespace cc = cds::container;
+ namespace co = cds::opt;
+ namespace {
+ typedef cds::urcu::gc< cds::urcu::general_threaded<> > rcu_type;
+
+ struct print_stat {
+ template <typename Tree>
+ void operator()( Tree const& t )
+ {
+ std::cout << t.statistics();
+ }
+ };
+ } // namespace
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_less()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,cc::bronson_avltree::relaxed_insert< false >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_less_stat()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ ,cc::bronson_avltree::relaxed_insert< false >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_cmp()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_cmp_stat()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_cmpless()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ ,co::less< std::less<key_type> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_less_ic()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,co::item_counter< cds::atomicity::item_counter >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_cmp_ic()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ ,co::item_counter< cds::atomicity::item_counter >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_cmp_ic_stat()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ ,co::item_counter< cds::atomicity::item_counter >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_cmp_ic_stat_yield()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ ,co::item_counter< cds::atomicity::item_counter >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ ,co::back_off< cds::backoff::yield >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_less_relaxed_insert()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,cc::bronson_avltree::relaxed_insert< true >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_less_relaxed_insert_stat()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ ,cc::bronson_avltree::relaxed_insert< true >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+} // namespace tree
--- /dev/null
+//$$CDS-header$$
+
+#include "tree/hdr_bronson_avltree_map.h"
+#include <cds/urcu/general_threaded.h>
+#include <cds/container/bronson_avltree_map_rcu.h>
+#include <cds/sync/pool_monitor.h>
+#include <cds/memory/vyukov_queue_pool.h>
+
+#include "unit/print_bronsonavltree_stat.h"
+
+namespace tree {
+ namespace cc = cds::container;
+ namespace co = cds::opt;
+ namespace {
+ typedef cds::urcu::gc< cds::urcu::general_threaded<> > rcu_type;
+
+ struct print_stat {
+ template <typename Tree>
+ void operator()( Tree const& t )
+ {
+ std::cout << t.statistics();
+ }
+ };
+
+ typedef cds::memory::vyukov_queue_pool< std::mutex > simple_pool;
+ typedef cds::memory::lazy_vyukov_queue_pool< std::mutex > lazy_pool;
+ typedef cds::memory::bounded_vyukov_queue_pool< std::mutex > bounded_pool;
+ } // namespace
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_pool_monitor_less()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,co::sync_monitor< cds::sync::pool_monitor<simple_pool> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_pool_monitor_less_stat()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ ,co::sync_monitor< cds::sync::pool_monitor<lazy_pool> >
+ ,cc::bronson_avltree::relaxed_insert< false >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_pool_monitor_cmp_ic_stat()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ ,co::item_counter< cds::atomicity::item_counter >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ ,co::sync_monitor< cds::sync::pool_monitor<bounded_pool> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_pool_monitor_cmp_ic_stat_yield()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ ,co::item_counter< cds::atomicity::item_counter >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ ,co::back_off< cds::backoff::yield >
+ ,co::sync_monitor< cds::sync::pool_monitor<lazy_pool> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_pool_monitor_less_relaxed_insert()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,cc::bronson_avltree::relaxed_insert< true >
+ ,co::sync_monitor< cds::sync::pool_monitor<lazy_pool> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_gpt_pool_monitor_less_relaxed_insert_stat()
+ {
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ ,cc::bronson_avltree::relaxed_insert< true >
+ ,co::sync_monitor< cds::sync::pool_monitor<simple_pool> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+ }
+
+} // namespace tree
--- /dev/null
+//$$CDS-header$$
+
+#include "tree/hdr_bronson_avltree_map.h"
+#include <cds/urcu/signal_buffered.h>
+#include <cds/container/bronson_avltree_map_rcu.h>
+
+#include "unit/print_bronsonavltree_stat.h"
+
+namespace tree {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ namespace cc = cds::container;
+ namespace co = cds::opt;
+ namespace {
+ typedef cds::urcu::gc< cds::urcu::signal_buffered<> > rcu_type;
+
+ struct print_stat {
+ template <typename Tree>
+ void operator()( Tree const& t )
+ {
+ std::cout << t.statistics();
+ }
+ };
+ } // namespace
+#endif
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_shb_less()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,cc::bronson_avltree::relaxed_insert< false >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_shb_less_stat()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ ,cc::bronson_avltree::relaxed_insert< false >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_shb_cmp()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_shb_cmp_stat()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_shb_cmpless()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ ,co::less< std::less<key_type> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_shb_less_ic()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,co::item_counter< cds::atomicity::item_counter >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_shb_cmp_ic()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ ,co::item_counter< cds::atomicity::item_counter >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_shb_cmp_ic_stat()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ ,co::item_counter< cds::atomicity::item_counter >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_shb_cmp_ic_stat_yield()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ ,co::item_counter< cds::atomicity::item_counter >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ ,co::back_off< cds::backoff::yield >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_shb_less_relaxed_insert()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,cc::bronson_avltree::relaxed_insert< true >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_shb_less_relaxed_insert_stat()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ ,cc::bronson_avltree::relaxed_insert< true >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+} // namespace tree
--- /dev/null
+//$$CDS-header$$
+
+#include "tree/hdr_bronson_avltree_map.h"
+#include <cds/urcu/signal_buffered.h>
+#include <cds/container/bronson_avltree_map_rcu.h>
+#include <cds/sync/pool_monitor.h>
+#include <cds/memory/vyukov_queue_pool.h>
+
+#include "unit/print_bronsonavltree_stat.h"
+
+namespace tree {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ namespace cc = cds::container;
+ namespace co = cds::opt;
+ namespace {
+ typedef cds::urcu::gc< cds::urcu::signal_buffered<> > rcu_type;
+
+ struct print_stat {
+ template <typename Tree>
+ void operator()( Tree const& t )
+ {
+ std::cout << t.statistics();
+ }
+ };
+
+ typedef cds::memory::vyukov_queue_pool< std::mutex > simple_pool;
+ typedef cds::memory::lazy_vyukov_queue_pool< std::mutex > lazy_pool;
+ typedef cds::memory::bounded_vyukov_queue_pool< std::mutex > bounded_pool;
+ } // namespace
+#endif
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_shb_pool_monitor_less()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,co::sync_monitor< cds::sync::pool_monitor<simple_pool> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_shb_pool_monitor_less_stat()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ ,co::sync_monitor< cds::sync::pool_monitor<lazy_pool> >
+ ,cc::bronson_avltree::relaxed_insert< false >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_shb_pool_monitor_cmp_ic_stat()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ ,co::item_counter< cds::atomicity::item_counter >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ ,co::sync_monitor< cds::sync::pool_monitor<bounded_pool> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_shb_pool_monitor_cmp_ic_stat_yield()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ ,co::item_counter< cds::atomicity::item_counter >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ ,co::back_off< cds::backoff::yield >
+ ,co::sync_monitor< cds::sync::pool_monitor<lazy_pool> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_shb_pool_monitor_less_relaxed_insert()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,cc::bronson_avltree::relaxed_insert< true >
+ ,co::sync_monitor< cds::sync::pool_monitor<lazy_pool> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_shb_pool_monitor_less_relaxed_insert_stat()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ ,cc::bronson_avltree::relaxed_insert< true >
+ ,co::sync_monitor< cds::sync::pool_monitor<simple_pool> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+} // namespace tree
--- /dev/null
+//$$CDS-header$$
+
+#include "tree/hdr_bronson_avltree_map.h"
+#include <cds/urcu/signal_threaded.h>
+#include <cds/container/bronson_avltree_map_rcu.h>
+
+#include "unit/print_bronsonavltree_stat.h"
+
+namespace tree {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ namespace cc = cds::container;
+ namespace co = cds::opt;
+ namespace {
+ typedef cds::urcu::gc< cds::urcu::signal_threaded<> > rcu_type;
+
+ struct print_stat {
+ template <typename Tree>
+ void operator()( Tree const& t )
+ {
+ std::cout << t.statistics();
+ }
+ };
+ } // namespace
+#endif
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_sht_less()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,cc::bronson_avltree::relaxed_insert< false >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_sht_less_stat()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ ,cc::bronson_avltree::relaxed_insert< false >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_sht_cmp()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_sht_cmp_stat()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_sht_cmpless()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ ,co::less< std::less<key_type> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_sht_less_ic()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,co::item_counter< cds::atomicity::item_counter >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_sht_cmp_ic()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ ,co::item_counter< cds::atomicity::item_counter >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_sht_cmp_ic_stat()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ ,co::item_counter< cds::atomicity::item_counter >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_sht_cmp_ic_stat_yield()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ ,co::item_counter< cds::atomicity::item_counter >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ ,co::back_off< cds::backoff::yield >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_sht_less_relaxed_insert()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,cc::bronson_avltree::relaxed_insert< true >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_sht_less_relaxed_insert_stat()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ ,cc::bronson_avltree::relaxed_insert< true >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+} // namespace tree
--- /dev/null
+//$$CDS-header$$
+
+#include "tree/hdr_bronson_avltree_map.h"
+#include <cds/urcu/signal_threaded.h>
+#include <cds/container/bronson_avltree_map_rcu.h>
+#include <cds/sync/pool_monitor.h>
+#include <cds/memory/vyukov_queue_pool.h>
+
+#include "unit/print_bronsonavltree_stat.h"
+
+namespace tree {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ namespace cc = cds::container;
+ namespace co = cds::opt;
+ namespace {
+ typedef cds::urcu::gc< cds::urcu::signal_threaded<> > rcu_type;
+
+ struct print_stat {
+ template <typename Tree>
+ void operator()( Tree const& t )
+ {
+ std::cout << t.statistics();
+ }
+ };
+
+ typedef cds::memory::vyukov_queue_pool< std::mutex > simple_pool;
+ typedef cds::memory::lazy_vyukov_queue_pool< std::mutex > lazy_pool;
+ typedef cds::memory::bounded_vyukov_queue_pool< std::mutex > bounded_pool;
+ } // namespace
+#endif
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_sht_pool_monitor_less()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,co::sync_monitor< cds::sync::pool_monitor<simple_pool> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_sht_pool_monitor_less_stat()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ ,co::sync_monitor< cds::sync::pool_monitor<lazy_pool> >
+ ,cc::bronson_avltree::relaxed_insert< false >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_sht_pool_monitor_cmp_ic_stat()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ ,co::item_counter< cds::atomicity::item_counter >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ ,co::sync_monitor< cds::sync::pool_monitor<bounded_pool> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_sht_pool_monitor_cmp_ic_stat_yield()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::compare< compare >
+ ,co::item_counter< cds::atomicity::item_counter >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ ,co::back_off< cds::backoff::yield >
+ ,co::sync_monitor< cds::sync::pool_monitor<lazy_pool> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_sht_pool_monitor_less_relaxed_insert()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,cc::bronson_avltree::relaxed_insert< true >
+ ,co::sync_monitor< cds::sync::pool_monitor<lazy_pool> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+
+ void BronsonAVLTreeHdrTest::BronsonAVLTree_rcu_sht_pool_monitor_less_relaxed_insert_stat()
+ {
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ struct traits: public
+ cc::bronson_avltree::make_traits<
+ co::less< std::less<key_type> >
+ ,co::stat< cc::bronson_avltree::stat<> >
+ ,cc::bronson_avltree::relaxed_insert< true >
+ ,co::sync_monitor< cds::sync::pool_monitor<simple_pool> >
+ >::type
+ {};
+ typedef cc::BronsonAVLTreeMap< rcu_type, key_type, value_type, traits > map_type;
+ test<map_type, print_stat>();
+#endif
+ }
+} // namespace tree