when you try to create skip-list object.
\note There are several specializations of \p %SkipListMap for each \p GC. You should include:
- - <tt><cds/container/skip_list_map_hp.h></tt> for gc::HP garbage collector
- - <tt><cds/container/skip_list_map_ptb.h></tt> for gc::PTB garbage collector
+ - <tt><cds/container/skip_list_map_hp.h></tt> for \p gc::HP garbage collector
+ - <tt><cds/container/skip_list_map_dhp.h></tt> for \p gc::DHP garbage collector
- <tt><cds/container/skip_list_map_rcu.h></tt> for \ref cds_nonintrusive_SkipListMap_rcu "RCU type"
- <tt><cds/container/skip_list_map_nogc.h></tt> for \ref cds_nonintrusive_SkipListMap_nogc "non-deletable SkipListMap"
when you try to create skip-list object.
\note There are several specializations of \p %SkipListSet for each \p GC. You should include:
- - <tt><cds/container/skip_list_set_hp.h></tt> for gc::HP garbage collector
- - <tt><cds/container/skip_list_set_ptb.h></tt> for gc::PTB garbage collector
+ - <tt><cds/container/skip_list_set_hp.h></tt> for \p gc::HP garbage collector
+ - <tt><cds/container/skip_list_set_dhp.h></tt> for \p gc::DHP garbage collector
- <tt><cds/container/skip_list_set_rcu.h></tt> for \ref cds_nonintrusive_SkipListSet_rcu "RCU type"
- <tt><cds/container/skip_list_set_nogc.h></tt> for \ref cds_nonintrusive_SkipListSet_nogc "non-deletable SkipListSet"
--- /dev/null
+//$$CDS-header$$
+
+#ifndef __CDS_CONTAINER_SKIP_LIST_SET_DHP_H
+#define __CDS_CONTAINER_SKIP_LIST_SET_DHP_H
+
+#include <cds/container/details/skip_list_base.h>
+#include <cds/intrusive/skip_list_dhp.h>
+#include <cds/container/details/make_skip_list_map.h>
+#include <cds/container/impl/skip_list_map.h>
+
+#endif // #ifndef __CDS_CONTAINER_SKIP_LIST_SET_DHP_H
+++ /dev/null
-//$$CDS-header$$
-
-#ifndef __CDS_CONTAINER_SKIP_LIST_SET_PTB_H
-#define __CDS_CONTAINER_SKIP_LIST_SET_PTB_H
-
-#include <cds/container/details/skip_list_base.h>
-#include <cds/intrusive/skip_list_ptb.h>
-#include <cds/container/details/make_skip_list_map.h>
-#include <cds/container/impl/skip_list_map.h>
-
-#endif // #ifndef __CDS_CONTAINER_SKIP_LIST_SET_PTB_H
--- /dev/null
+//$$CDS-header$$
+
+#ifndef __CDS_CONTAINER_SKIP_LIST_MAP_PTB_H
+#define __CDS_CONTAINER_SKIP_LIST_MAP_PTB_H
+
+#include <cds/container/details/skip_list_base.h>
+#include <cds/intrusive/skip_list_dhp.h>
+#include <cds/container/details/make_skip_list_set.h>
+#include <cds/container/impl/skip_list_set.h>
+
+#endif // #ifndef __CDS_CONTAINER_SKIP_LIST_MAP_PTB_H
+++ /dev/null
-//$$CDS-header$$
-
-#ifndef __CDS_CONTAINER_SKIP_LIST_MAP_PTB_H
-#define __CDS_CONTAINER_SKIP_LIST_MAP_PTB_H
-
-#include <cds/container/details/skip_list_base.h>
-#include <cds/intrusive/skip_list_ptb.h>
-#include <cds/container/details/make_skip_list_set.h>
-#include <cds/container/impl/skip_list_set.h>
-
-#endif // #ifndef __CDS_CONTAINER_SKIP_LIST_MAP_PTB_H
when you try to create skip-list object.
\note There are several specializations of \p %SkipListSet for each \p GC. You should include:
- - <tt><cds/intrusive/skip_list_hp.h></tt> for gc::HP garbage collector
- - <tt><cds/intrusive/skip_list_ptb.h></tt> for gc::PTB garbage collector
+ - <tt><cds/intrusive/skip_list_hp.h></tt> for \p gc::HP garbage collector
+ - <tt><cds/intrusive/skip_list_dhp.h></tt> for \p gc::DHP garbage collector
- <tt><cds/intrusive/skip_list_nogc.h></tt> for \ref cds_intrusive_SkipListSet_nogc for persistent set
- <tt><cds/intrusive/skip_list_rcu.h></tt> for \ref cds_intrusive_SkipListSet_rcu "RCU type"
--- /dev/null
+//$$CDS-header$$
+
+#ifndef __CDS_INTRUSIVE_SKIP_LIST_DHP_H
+#define __CDS_INTRUSIVE_SKIP_LIST_DHP_H
+
+#include <cds/gc/dhp.h>
+#include <cds/intrusive/impl/skip_list.h>
+
+#endif // __CDS_INTRUSIVE_SKIP_LIST_DHP_H
+++ /dev/null
-//$$CDS-header$$
-
-#ifndef __CDS_INTRUSIVE_SKIP_LIST_PTB_H
-#define __CDS_INTRUSIVE_SKIP_LIST_PTB_H
-
-#include <cds/gc/ptb.h>
-#include <cds/intrusive/impl/skip_list.h>
-
-#endif
<ClInclude Include="..\..\..\cds\container\skip_list_map_nogc.h" />\r
<ClInclude Include="..\..\..\cds\container\skip_list_map_ptb.h" />\r
<ClInclude Include="..\..\..\cds\container\skip_list_map_rcu.h" />\r
+ <ClInclude Include="..\..\..\cds\container\skip_list_set_dhp.h" />\r
<ClInclude Include="..\..\..\cds\container\skip_list_set_hp.h" />\r
<ClInclude Include="..\..\..\cds\container\skip_list_set_nogc.h" />\r
- <ClInclude Include="..\..\..\cds\container\skip_list_set_ptb.h" />\r
<ClInclude Include="..\..\..\cds\container\skip_list_set_rcu.h" />\r
<ClInclude Include="..\..\..\cds\container\split_list_map_rcu.h" />\r
<ClInclude Include="..\..\..\cds\container\split_list_set_rcu.h" />\r
<ClInclude Include="..\..\..\cds\intrusive\michael_set_rcu.h" />\r
<ClInclude Include="..\..\..\cds\intrusive\mspriority_queue.h" />\r
<ClInclude Include="..\..\..\cds\intrusive\options.h" />\r
+ <ClInclude Include="..\..\..\cds\intrusive\skip_list_dhp.h" />\r
<ClInclude Include="..\..\..\cds\intrusive\skip_list_hp.h" />\r
<ClInclude Include="..\..\..\cds\intrusive\skip_list_nogc.h" />\r
- <ClInclude Include="..\..\..\cds\intrusive\skip_list_ptb.h" />\r
<ClInclude Include="..\..\..\cds\intrusive\skip_list_rcu.h" />\r
<ClInclude Include="..\..\..\cds\intrusive\split_list_rcu.h" />\r
<ClInclude Include="..\..\..\cds\intrusive\striped_set.h" />\r
<ClInclude Include="..\..\..\cds\intrusive\skip_list_hp.h">\r
<Filter>Header Files\cds\intrusive</Filter>\r
</ClInclude>\r
- <ClInclude Include="..\..\..\cds\intrusive\skip_list_ptb.h">\r
- <Filter>Header Files\cds\intrusive</Filter>\r
- </ClInclude>\r
<ClInclude Include="..\..\..\cds\container\skip_list_set_hp.h">\r
<Filter>Header Files\cds\container</Filter>\r
</ClInclude>\r
- <ClInclude Include="..\..\..\cds\container\skip_list_set_ptb.h">\r
- <Filter>Header Files\cds\container</Filter>\r
- </ClInclude>\r
<ClInclude Include="..\..\..\cds\container\details\make_skip_list_set.h">\r
<Filter>Header Files\cds\container\details</Filter>\r
</ClInclude>\r
<ClInclude Include="..\..\..\cds\container\lazy_kvlist_dhp.h">\r
<Filter>Header Files\cds\container</Filter>\r
</ClInclude>\r
+ <ClInclude Include="..\..\..\cds\intrusive\skip_list_dhp.h">\r
+ <Filter>Header Files\cds\intrusive</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="..\..\..\cds\container\skip_list_set_dhp.h">\r
+ <Filter>Header Files\cds\container</Filter>\r
+ </ClInclude>\r
</ItemGroup>\r
</Project>
\ No newline at end of file
<ClCompile Include="..\..\..\tests\test-hdr\map\hdr_refinable_hashmap_map.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\map\hdr_refinable_hashmap_slist.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\map\hdr_skiplist_map_hp.cpp" />\r
- <ClCompile Include="..\..\..\tests\test-hdr\map\hdr_skiplist_map_hrc.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\map\hdr_skiplist_map_nogc.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\map\hdr_skiplist_map_ptb.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\map\hdr_skiplist_map_rcu_gpb.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\map\hdr_skiplist_map_rcu_sht.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\map\hdr_splitlist_map_hp.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\map\hdr_splitlist_map_lazy_hp.cpp" />\r
- <ClCompile Include="..\..\..\tests\test-hdr\map\hdr_splitlist_map_lazy_hrc.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\map\hdr_splitlist_map_lazy_nogc.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\map\hdr_splitlist_map_lazy_ptb.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\map\hdr_splitlist_map_lazy_rcu_gpb.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\map\hdr_skiplist_map_hp.cpp">\r
<Filter>skip_list</Filter>\r
</ClCompile>\r
- <ClCompile Include="..\..\..\tests\test-hdr\map\hdr_skiplist_map_hrc.cpp">\r
- <Filter>skip_list</Filter>\r
- </ClCompile>\r
<ClCompile Include="..\..\..\tests\test-hdr\map\hdr_skiplist_map_ptb.cpp">\r
<Filter>skip_list</Filter>\r
</ClCompile>\r
<ClCompile Include="..\..\..\tests\test-hdr\map\hdr_splitlist_map_lazy_hp.cpp">\r
<Filter>split_list</Filter>\r
</ClCompile>\r
- <ClCompile Include="..\..\..\tests\test-hdr\map\hdr_splitlist_map_lazy_hrc.cpp">\r
- <Filter>split_list</Filter>\r
- </ClCompile>\r
<ClCompile Include="..\..\..\tests\test-hdr\map\hdr_splitlist_map_lazy_nogc.cpp">\r
<Filter>split_list</Filter>\r
</ClCompile>\r
void Lazy_PTB_less();
void Lazy_PTB_cmpmix();
- void Lazy_HRC_cmp();
- void Lazy_HRC_less();
- void Lazy_HRC_cmpmix();
-
void Lazy_RCU_GPI_cmp();
void Lazy_RCU_GPI_less();
void Lazy_RCU_GPI_cmpmix();
void Split_Lazy_PTB_less();
void Split_Lazy_PTB_cmpmix();
- void Split_Lazy_HRC_cmp();
- void Split_Lazy_HRC_less();
- void Split_Lazy_HRC_cmpmix();
-
void Split_Lazy_RCU_GPI_cmp();
void Split_Lazy_RCU_GPI_less();
void Split_Lazy_RCU_GPI_cmpmix();
CPPUNIT_TEST(Lazy_PTB_less)
CPPUNIT_TEST(Lazy_PTB_cmpmix)
- CPPUNIT_TEST(Lazy_HRC_cmp)
- CPPUNIT_TEST(Lazy_HRC_less)
- CPPUNIT_TEST(Lazy_HRC_cmpmix)
-
CPPUNIT_TEST(Lazy_RCU_GPI_cmp)
CPPUNIT_TEST(Lazy_RCU_GPI_less)
CPPUNIT_TEST(Lazy_RCU_GPI_cmpmix)
CPPUNIT_TEST(Split_Lazy_PTB_less)
CPPUNIT_TEST(Split_Lazy_PTB_cmpmix)
- CPPUNIT_TEST(Split_Lazy_HRC_cmp)
- CPPUNIT_TEST(Split_Lazy_HRC_less)
- CPPUNIT_TEST(Split_Lazy_HRC_cmpmix)
-
CPPUNIT_TEST(Split_Lazy_RCU_GPI_cmp)
CPPUNIT_TEST(Split_Lazy_RCU_GPI_less)
CPPUNIT_TEST(Split_Lazy_RCU_GPI_cmpmix)
void SkipList_HP_michaelalloc_cmp_stat();
void SkipList_HP_michaelalloc_cmpless_stat();
- void SkipList_HRC_less();
- void SkipList_HRC_cmp();
- void SkipList_HRC_cmpless();
- void SkipList_HRC_less_stat();
- void SkipList_HRC_cmp_stat();
- void SkipList_HRC_cmpless_stat();
- void SkipList_HRC_xorshift_less();
- void SkipList_HRC_xorshift_cmp();
- void SkipList_HRC_xorshift_cmpless();
- void SkipList_HRC_xorshift_less_stat();
- void SkipList_HRC_xorshift_cmp_stat();
- void SkipList_HRC_xorshift_cmpless_stat();
- void SkipList_HRC_turbopas_less();
- void SkipList_HRC_turbopas_cmp();
- void SkipList_HRC_turbopas_cmpless();
- void SkipList_HRC_turbopas_less_stat();
- void SkipList_HRC_turbopas_cmp_stat();
- void SkipList_HRC_turbopas_cmpless_stat();
- void SkipList_HRC_michaelalloc_less();
- void SkipList_HRC_michaelalloc_cmp();
- void SkipList_HRC_michaelalloc_cmpless();
- void SkipList_HRC_michaelalloc_less_stat();
- void SkipList_HRC_michaelalloc_cmp_stat();
- void SkipList_HRC_michaelalloc_cmpless_stat();
-
void SkipList_PTB_less();
void SkipList_PTB_cmp();
void SkipList_PTB_cmpless();
CPPUNIT_TEST(SkipList_HP_michaelalloc_cmp_stat)
CPPUNIT_TEST(SkipList_HP_michaelalloc_cmpless_stat)
- CPPUNIT_TEST(SkipList_HRC_less)
- CPPUNIT_TEST(SkipList_HRC_cmp)
- CPPUNIT_TEST(SkipList_HRC_cmpless)
- CPPUNIT_TEST(SkipList_HRC_less_stat)
- CPPUNIT_TEST(SkipList_HRC_cmp_stat)
- CPPUNIT_TEST(SkipList_HRC_cmpless_stat)
- CPPUNIT_TEST(SkipList_HRC_xorshift_less)
- CPPUNIT_TEST(SkipList_HRC_xorshift_cmp)
- CPPUNIT_TEST(SkipList_HRC_xorshift_cmpless)
- CPPUNIT_TEST(SkipList_HRC_xorshift_less_stat)
- CPPUNIT_TEST(SkipList_HRC_xorshift_cmp_stat)
- CPPUNIT_TEST(SkipList_HRC_xorshift_cmpless_stat)
- CPPUNIT_TEST(SkipList_HRC_turbopas_less)
- CPPUNIT_TEST(SkipList_HRC_turbopas_cmp)
- CPPUNIT_TEST(SkipList_HRC_turbopas_cmpless)
- CPPUNIT_TEST(SkipList_HRC_turbopas_less_stat)
- CPPUNIT_TEST(SkipList_HRC_turbopas_cmp_stat)
- CPPUNIT_TEST(SkipList_HRC_turbopas_cmpless_stat)
- CPPUNIT_TEST(SkipList_HRC_michaelalloc_less)
- CPPUNIT_TEST(SkipList_HRC_michaelalloc_cmp)
- CPPUNIT_TEST(SkipList_HRC_michaelalloc_cmpless)
- CPPUNIT_TEST(SkipList_HRC_michaelalloc_less_stat)
- CPPUNIT_TEST(SkipList_HRC_michaelalloc_cmp_stat)
- CPPUNIT_TEST(SkipList_HRC_michaelalloc_cmpless_stat)
-
CPPUNIT_TEST(SkipList_PTB_less)
CPPUNIT_TEST(SkipList_PTB_cmp)
CPPUNIT_TEST(SkipList_PTB_cmpless)
+++ /dev/null
-//$$CDS-header$$
-
-#include "map/hdr_skiplist_map.h"
-#include <cds/container/skip_list_map_hrc.h>
-#include "unit/michael_alloc.h"
-#include "map/print_skiplist_stat.h"
-
-namespace map {
-
- void SkipListMapHdrTest::SkipList_HRC_less()
- {
- typedef cc::SkipListMap< cds::gc::HRC, key_type, value_type,
- cc::skip_list::make_traits<
- co::less< less >
- ,co::item_counter< simple_item_counter >
- >::type
- > set;
- test< set, misc::print_skiplist_stat<set::stat> >();
- }
-
- void SkipListMapHdrTest::SkipList_HRC_cmp()
- {
- typedef cc::SkipListMap< cds::gc::HRC, key_type, value_type,
- cc::skip_list::make_traits<
- co::compare< cmp >
- ,co::item_counter< simple_item_counter >
- >::type
- > set;
- test< set, misc::print_skiplist_stat<set::stat> >();
- }
-
- void SkipListMapHdrTest::SkipList_HRC_cmpless()
- {
- typedef cc::SkipListMap< cds::gc::HRC, key_type, value_type,
- cc::skip_list::make_traits<
- co::less< less >
- ,co::compare< cmp >
- ,co::item_counter< simple_item_counter >
- >::type
- > set;
- test< set, misc::print_skiplist_stat<set::stat> >();
- }
-
- void SkipListMapHdrTest::SkipList_HRC_less_stat()
- {
- typedef cc::SkipListMap< cds::gc::HRC, key_type, value_type,
- cc::skip_list::make_traits<
- co::less< less >
- ,co::item_counter< simple_item_counter >
- ,co::stat< cc::skip_list::stat<> >
- >::type
- > set;
- test< set, misc::print_skiplist_stat<set::stat> >();
- }
-
- void SkipListMapHdrTest::SkipList_HRC_cmp_stat()
- {
- typedef cc::SkipListMap< cds::gc::HRC, key_type, value_type,
- cc::skip_list::make_traits<
- co::compare< cmp >
- ,co::item_counter< simple_item_counter >
- ,co::stat< cc::skip_list::stat<> >
- >::type
- > set;
- test< set, misc::print_skiplist_stat<set::stat> >();
- }
-
- void SkipListMapHdrTest::SkipList_HRC_cmpless_stat()
- {
- typedef cc::SkipListMap< cds::gc::HRC, key_type, value_type,
- cc::skip_list::make_traits<
- co::less< less >
- ,co::compare< cmp >
- ,co::item_counter< simple_item_counter >
- ,co::stat< cc::skip_list::stat<> >
- >::type
- > set;
- test< set, misc::print_skiplist_stat<set::stat> >();
- }
-
- void SkipListMapHdrTest::SkipList_HRC_xorshift_less()
- {
- typedef cc::SkipListMap< cds::gc::HRC, key_type, value_type,
- cc::skip_list::make_traits<
- co::less< less >
- ,co::item_counter< simple_item_counter >
- ,cc::skip_list::random_level_generator< cc::skip_list::xorshift >
- >::type
- > set;
- test< set, misc::print_skiplist_stat<set::stat> >();
- }
-
- void SkipListMapHdrTest::SkipList_HRC_xorshift_cmp()
- {
- typedef cc::SkipListMap< cds::gc::HRC, key_type, value_type,
- cc::skip_list::make_traits<
- co::compare< cmp >
- ,co::item_counter< simple_item_counter >
- ,cc::skip_list::random_level_generator< cc::skip_list::xorshift >
- >::type
- > set;
- test< set, misc::print_skiplist_stat<set::stat> >();
- }
-
- void SkipListMapHdrTest::SkipList_HRC_xorshift_cmpless()
- {
- typedef cc::SkipListMap< cds::gc::HRC, key_type, value_type,
- cc::skip_list::make_traits<
- co::less< less >
- ,co::compare< cmp >
- ,co::item_counter< simple_item_counter >
- ,cc::skip_list::random_level_generator< cc::skip_list::xorshift >
- >::type
- > set;
- test< set, misc::print_skiplist_stat<set::stat> >();
- }
-
- void SkipListMapHdrTest::SkipList_HRC_xorshift_less_stat()
- {
- typedef cc::SkipListMap< cds::gc::HRC, key_type, value_type,
- cc::skip_list::make_traits<
- co::less< less >
- ,co::item_counter< simple_item_counter >
- ,co::stat< cc::skip_list::stat<> >
- ,cc::skip_list::random_level_generator< cc::skip_list::xorshift >
- >::type
- > set;
- test< set, misc::print_skiplist_stat<set::stat> >();
- }
-
- void SkipListMapHdrTest::SkipList_HRC_xorshift_cmp_stat()
- {
- typedef cc::SkipListMap< cds::gc::HRC, key_type, value_type,
- cc::skip_list::make_traits<
- co::compare< cmp >
- ,co::item_counter< simple_item_counter >
- ,co::stat< cc::skip_list::stat<> >
- ,cc::skip_list::random_level_generator< cc::skip_list::xorshift >
- >::type
- > set;
- test< set, misc::print_skiplist_stat<set::stat> >();
- }
-
- void SkipListMapHdrTest::SkipList_HRC_xorshift_cmpless_stat()
- {
- typedef cc::SkipListMap< cds::gc::HRC, key_type, value_type,
- cc::skip_list::make_traits<
- co::less< less >
- ,co::compare< cmp >
- ,co::item_counter< simple_item_counter >
- ,co::stat< cc::skip_list::stat<> >
- ,cc::skip_list::random_level_generator< cc::skip_list::xorshift >
- >::type
- > set;
- test< set, misc::print_skiplist_stat<set::stat> >();
- }
-
- void SkipListMapHdrTest::SkipList_HRC_turbopas_less()
- {
- typedef cc::SkipListMap< cds::gc::HRC, key_type, value_type,
- cc::skip_list::make_traits<
- co::less< less >
- ,co::item_counter< simple_item_counter >
- ,cc::skip_list::random_level_generator< cc::skip_list::turbo_pascal >
- >::type
- > set;
- test< set, misc::print_skiplist_stat<set::stat> >();
- }
-
- void SkipListMapHdrTest::SkipList_HRC_turbopas_cmp()
- {
- typedef cc::SkipListMap< cds::gc::HRC, key_type, value_type,
- cc::skip_list::make_traits<
- co::compare< cmp >
- ,co::item_counter< simple_item_counter >
- ,cc::skip_list::random_level_generator< cc::skip_list::turbo_pascal >
- >::type
- > set;
- test< set, misc::print_skiplist_stat<set::stat> >();
- }
-
- void SkipListMapHdrTest::SkipList_HRC_turbopas_cmpless()
- {
- typedef cc::SkipListMap< cds::gc::HRC, key_type, value_type,
- cc::skip_list::make_traits<
- co::less< less >
- ,co::compare< cmp >
- ,co::item_counter< simple_item_counter >
- ,cc::skip_list::random_level_generator< cc::skip_list::turbo_pascal >
- >::type
- > set;
- test< set, misc::print_skiplist_stat<set::stat> >();
- }
-
- void SkipListMapHdrTest::SkipList_HRC_turbopas_less_stat()
- {
- typedef cc::SkipListMap< cds::gc::HRC, key_type, value_type,
- cc::skip_list::make_traits<
- co::less< less >
- ,co::item_counter< simple_item_counter >
- ,co::stat< cc::skip_list::stat<> >
- ,cc::skip_list::random_level_generator< cc::skip_list::turbo_pascal >
- >::type
- > set;
- test< set, misc::print_skiplist_stat<set::stat> >();
- }
-
- void SkipListMapHdrTest::SkipList_HRC_turbopas_cmp_stat()
- {
- typedef cc::SkipListMap< cds::gc::HRC, key_type, value_type,
- cc::skip_list::make_traits<
- co::compare< cmp >
- ,co::item_counter< simple_item_counter >
- ,co::stat< cc::skip_list::stat<> >
- ,cc::skip_list::random_level_generator< cc::skip_list::turbo_pascal >
- >::type
- > set;
- test< set, misc::print_skiplist_stat<set::stat> >();
- }
-
- void SkipListMapHdrTest::SkipList_HRC_turbopas_cmpless_stat()
- {
- typedef cc::SkipListMap< cds::gc::HRC, key_type, value_type,
- cc::skip_list::make_traits<
- co::less< less >
- ,co::compare< cmp >
- ,co::item_counter< simple_item_counter >
- ,co::stat< cc::skip_list::stat<> >
- ,cc::skip_list::random_level_generator< cc::skip_list::turbo_pascal >
- >::type
- > set;
- test< set, misc::print_skiplist_stat<set::stat> >();
- }
-
- void SkipListMapHdrTest::SkipList_HRC_michaelalloc_less()
- {
- typedef cc::SkipListMap< cds::gc::HRC, key_type, value_type,
- cc::skip_list::make_traits<
- co::less< less >
- ,co::item_counter< simple_item_counter >
- ,co::allocator< memory::MichaelAllocator<int> >
- >::type
- > set;
- test< set, misc::print_skiplist_stat<set::stat> >();
- }
-
- void SkipListMapHdrTest::SkipList_HRC_michaelalloc_cmp()
- {
- typedef cc::SkipListMap< cds::gc::HRC, key_type, value_type,
- cc::skip_list::make_traits<
- co::compare< cmp >
- ,co::item_counter< simple_item_counter >
- ,co::allocator< memory::MichaelAllocator<int> >
- >::type
- > set;
- test< set, misc::print_skiplist_stat<set::stat> >();
- }
-
- void SkipListMapHdrTest::SkipList_HRC_michaelalloc_cmpless()
- {
- typedef cc::SkipListMap< cds::gc::HRC, key_type, value_type,
- cc::skip_list::make_traits<
- co::less< less >
- ,co::compare< cmp >
- ,co::item_counter< simple_item_counter >
- ,co::allocator< memory::MichaelAllocator<int> >
- >::type
- > set;
- test< set, misc::print_skiplist_stat<set::stat> >();
- }
-
- void SkipListMapHdrTest::SkipList_HRC_michaelalloc_less_stat()
- {
- typedef cc::SkipListMap< cds::gc::HRC, key_type, value_type,
- cc::skip_list::make_traits<
- co::less< less >
- ,co::item_counter< simple_item_counter >
- ,co::stat< cc::skip_list::stat<> >
- ,co::allocator< memory::MichaelAllocator<int> >
- >::type
- > set;
- test< set, misc::print_skiplist_stat<set::stat> >();
- }
-
- void SkipListMapHdrTest::SkipList_HRC_michaelalloc_cmp_stat()
- {
- typedef cc::SkipListMap< cds::gc::HRC, key_type, value_type,
- cc::skip_list::make_traits<
- co::compare< cmp >
- ,co::item_counter< simple_item_counter >
- ,co::stat< cc::skip_list::stat<> >
- ,co::allocator< memory::MichaelAllocator<int> >
- >::type
- > set;
- test< set, misc::print_skiplist_stat<set::stat> >();
- }
-
- void SkipListMapHdrTest::SkipList_HRC_michaelalloc_cmpless_stat()
- {
- typedef cc::SkipListMap< cds::gc::HRC, key_type, value_type,
- cc::skip_list::make_traits<
- co::less< less >
- ,co::compare< cmp >
- ,co::item_counter< simple_item_counter >
- ,co::stat< cc::skip_list::stat<> >
- ,co::allocator< memory::MichaelAllocator<int> >
- >::type
- > set;
- test< set, misc::print_skiplist_stat<set::stat> >();
- }
-} // namespace map
//$$CDS-header$$
#include "map/hdr_skiplist_map.h"
-#include <cds/container/skip_list_map_ptb.h>
+#include <cds/container/skip_list_map_dhp.h>
#include "unit/michael_alloc.h"
#include "map/print_skiplist_stat.h"
+++ /dev/null
-//$$CDS-header$$
-
-#include "map/hdr_map.h"
-#include <cds/container/lazy_list_hrc.h>
-#include <cds/container/split_list_map.h>
-
-namespace map {
-
- namespace {
- struct HRC_cmp_traits: public cc::split_list::type_traits
- {
- typedef cc::lazy_list_tag ordered_list;
- typedef HashMapHdrTest::hash_int hash;
- typedef HashMapHdrTest::simple_item_counter item_counter;
- typedef cc::opt::v::relaxed_ordering memory_model;
- enum { dynamic_bucket_table = false };
-
- struct ordered_list_traits: public cc::lazy_list::type_traits
- {
- typedef HashMapHdrTest::cmp compare;
- };
- };
-
- struct HRC_less_traits: public cc::split_list::type_traits
- {
- typedef cc::lazy_list_tag ordered_list;
- typedef HashMapHdrTest::hash_int hash;
- typedef HashMapHdrTest::simple_item_counter item_counter;
- typedef cc::opt::v::sequential_consistent memory_model;
- enum { dynamic_bucket_table = false };
-
- struct ordered_list_traits: public cc::lazy_list::type_traits
- {
- typedef HashMapHdrTest::less less;
- };
- };
-
- struct HRC_cmpmix_traits: public cc::split_list::type_traits
- {
- typedef cc::lazy_list_tag ordered_list;
- typedef HashMapHdrTest::hash_int hash;
- typedef HashMapHdrTest::simple_item_counter item_counter;
-
- struct ordered_list_traits: public cc::lazy_list::type_traits
- {
- typedef HashMapHdrTest::cmp compare;
- typedef std::less<HashMapHdrTest::key_type> less;
- };
- };
- }
-
- void HashMapHdrTest::Split_Lazy_HRC_cmp()
- {
- // traits-based version
- typedef cc::SplitListMap< cds::gc::HRC, key_type, value_type, HRC_cmp_traits > map_type;
- test_int< map_type >();
-
- // option-based version
- typedef cc::SplitListMap< cds::gc::HRC,
- key_type,
- value_type,
- cc::split_list::make_traits<
- cc::split_list::ordered_list<cc::lazy_list_tag>
- ,cc::opt::hash< hash_int >
- ,cc::opt::item_counter< simple_item_counter >
- ,cc::opt::memory_model< cc::opt::v::relaxed_ordering >
- ,cc::split_list::dynamic_bucket_table< true >
- ,cc::split_list::ordered_list_traits<
- cc::lazy_list::make_traits<
- cc::opt::compare< cmp >
- >::type
- >
- >::type
- > opt_map;
- test_int< opt_map >();
- }
-
- void HashMapHdrTest::Split_Lazy_HRC_less()
- {
- // traits-based version
- typedef cc::SplitListMap< cds::gc::HRC, key_type, value_type, HRC_less_traits > map_type;
- test_int< map_type >();
-
- // option-based version
- typedef cc::SplitListMap< cds::gc::HRC,
- key_type,
- value_type,
- cc::split_list::make_traits<
- cc::split_list::ordered_list<cc::lazy_list_tag>
- ,cc::opt::hash< hash_int >
- ,cc::opt::item_counter< simple_item_counter >
- ,cc::opt::memory_model< cc::opt::v::relaxed_ordering >
- ,cc::split_list::dynamic_bucket_table< false >
- ,cc::split_list::ordered_list_traits<
- cc::lazy_list::make_traits<
- cc::opt::less< less >
- >::type
- >
- >::type
- > opt_map;
- test_int< opt_map >();
- }
-
- void HashMapHdrTest::Split_Lazy_HRC_cmpmix()
- {
- // traits-based version
- typedef cc::SplitListMap< cds::gc::HRC, key_type, value_type, HRC_cmpmix_traits > map_type;
- test_int< map_type >();
-
- // option-based version
- typedef cc::SplitListMap< cds::gc::HRC,
- key_type,
- value_type,
- cc::split_list::make_traits<
- cc::split_list::ordered_list<cc::lazy_list_tag>
- ,cc::opt::hash< hash_int >
- ,cc::opt::item_counter< simple_item_counter >
- ,cc::split_list::ordered_list_traits<
- cc::lazy_list::make_traits<
- cc::opt::less< std::less<key_type> >
- ,cc::opt::compare< cmp >
- >::type
- >
- >::type
- > opt_map;
- test_int< opt_map >();
- }
-
-
-} // namespace map
-
#include "set/hdr_intrusive_skiplist_set.h"
-#include <cds/intrusive/skip_list_ptb.h>
+#include <cds/intrusive/skip_list_dhp.h>
#include "map/print_skiplist_stat.h"
namespace set {
#include "set/hdr_intrusive_skiplist_set.h"
-#include <cds/intrusive/skip_list_ptb.h>
+#include <cds/intrusive/skip_list_dhp.h>
#include "map/print_skiplist_stat.h"
namespace set {
//$$CDS-header$$
#include "set/hdr_skiplist_set.h"
-#include <cds/container/skip_list_set_ptb.h>
+#include <cds/container/skip_list_set_dhp.h>
#include "unit/michael_alloc.h"
#include "map/print_skiplist_stat.h"
#include <cds/container/cuckoo_map.h>
#include <cds/container/skip_list_map_hp.h>
-#include <cds/container/skip_list_map_ptb.h>
+#include <cds/container/skip_list_map_dhp.h>
#include <cds/container/skip_list_map_rcu.h>
#include <cds/container/skip_list_map_nogc.h>
#define __CDSUNIT_SKIPLIST_PQUEUE_H
#include <cds/container/skip_list_set_hp.h>
-#include <cds/container/skip_list_set_hrc.h>
-#include <cds/container/skip_list_set_ptb.h>
+#include <cds/container/skip_list_set_dhp.h>
#include <cds/urcu/general_instant.h>
#include <cds/urcu/general_buffered.h>
#include <cds/urcu/general_threaded.h>
#include <cds/container/cuckoo_set.h>
#include <cds/container/skip_list_set_hp.h>
-#include <cds/container/skip_list_set_ptb.h>
+#include <cds/container/skip_list_set_dhp.h>
#include <cds/container/skip_list_set_rcu.h>
#include <cds/container/ellen_bintree_set_rcu.h>