There are different specializations of this template for each garbage collecting schema used.
You should include appropriate .h-file depending on GC you are using:
- for gc::HP: \code #include <cds/container/lazy_kvlist_hp.h> \endcode
- - for gc::PTB: \code #include <cds/container/lazy_kvlist_ptb.h> \endcode
+ - for gc::DHP: \code #include <cds/container/lazy_kvlist_dhp.h> \endcode
- for \ref cds_urcu_desc "RCU": \code #include <cds/container/lazy_kvlist_rcu.h> \endcode
- for gc::nogc: \code #include <cds/container/lazy_kvlist_nogc.h> \endcode
*/
There are different specializations of this template for each garbage collecting schema used.
You should include appropriate .h-file depending on GC you are using:
- for gc::HP: \code #include <cds/container/lazy_list_hp.h> \endcode
- - for gc::PTB: \code #include <cds/container/lazy_list_ptb.h> \endcode
+ - for gc::DHP: \code #include <cds/container/lazy_list_dhp.h> \endcode
- for \ref cds_urcu_desc "RCU": \code #include <cds/container/lazy_list_rcu.h> \endcode
- for gc::nogc: \code #include <cds/container/lazy_list_nogc.h> \endcode
*/
--- /dev/null
+//$$CDS-header$$
+
+#ifndef __CDS_CONTAINER_LAZY_KVLIST_DHP_H
+#define __CDS_CONTAINER_LAZY_KVLIST_DHP_H
+
+#include <cds/container/details/lazy_list_base.h>
+#include <cds/intrusive/lazy_list_dhp.h>
+#include <cds/container/details/make_lazy_kvlist.h>
+#include <cds/container/impl/lazy_kvlist.h>
+
+#endif // #ifndef __CDS_CONTAINER_LAZY_KVLIST_DHP_H
+++ /dev/null
-//$$CDS-header$$
-
-#ifndef __CDS_CONTAINER_LAZY_KVLIST_PTB_H
-#define __CDS_CONTAINER_LAZY_KVLIST_PTB_H
-
-#include <cds/container/details/lazy_list_base.h>
-#include <cds/intrusive/lazy_list_ptb.h>
-#include <cds/container/details/make_lazy_kvlist.h>
-#include <cds/container/impl/lazy_kvlist.h>
-
-#endif // #ifndef __CDS_CONTAINER_LAZY_KVLIST_PTB_H
--- /dev/null
+//$$CDS-header$$
+
+#ifndef __CDS_CONTAINER_LAZY_LIST_DHP_H
+#define __CDS_CONTAINER_LAZY_LIST_DHP_H
+
+#include <cds/container/details/lazy_list_base.h>
+#include <cds/intrusive/lazy_list_dhp.h>
+#include <cds/container/details/make_lazy_list.h>
+#include <cds/container/impl/lazy_list.h>
+
+#endif // #ifndef __CDS_CONTAINER_LAZY_LIST_DHP_H
+++ /dev/null
-//$$CDS-header$$
-
-#ifndef __CDS_CONTAINER_LAZY_LIST_PTB_H
-#define __CDS_CONTAINER_LAZY_LIST_PTB_H
-
-#include <cds/container/details/lazy_list_base.h>
-#include <cds/intrusive/lazy_list_ptb.h>
-#include <cds/container/details/make_lazy_list.h>
-#include <cds/container/impl/lazy_list.h>
-
-#endif // #ifndef __CDS_CONTAINER_LAZY_LIST_PTB_H
\par Usage
You should decide what garbage collector you want, and what ordered list you want to use. Split-ordered list
- is original data structure based on an ordered list. Suppose, you want construct split-list set based on gc::PTB GC
+ is original data structure based on an ordered list. Suppose, you want construct split-list set based on gc::DHP GC
and LazyList as ordered list implementation. So, you beginning your program with following include:
\code
- #include <cds/container/lazy_list_ptb.h>
+ #include <cds/container/lazy_list_dhp.h>
#include <cds/container/split_list_set.h>
namespace cc = cds::container;
std::string strValue ; // value field
};
\endcode
- The inclusion order is important: first, include header for ordered-list implementation (for this example, <tt>cds/container/lazy_list_ptb.h</tt>),
+ The inclusion order is important: first, include header for ordered-list implementation (for this example, <tt>cds/container/lazy_list_dhp.h</tt>),
then the header for split-list set <tt>cds/container/split_list_set.h</tt>.
Now, you should declare traits for split-list set. The main parts of traits are a hash functor for the set and a comparing functor for ordered list.
There are different specializations of this template for each garbage collecting schema used.
You should select GC needed and include appropriate .h-file:
- for gc::HP: \code #include <cds/intrusive/lazy_list_hp.h> \endcode
- - for gc::PTB: \code #include <cds/intrusive/lazy_list_ptb.h> \endcode
+ - for gc::DHP: \code #include <cds/intrusive/lazy_list_dhp.h> \endcode
- for gc::nogc: \code #include <cds/intrusive/lazy_list_nogc.h> \endcode
- for \ref cds_urcu_type "RCU" - see \ref cds_intrusive_LazyList_rcu "LazyList RCU specialization"
Example for gc::PTB and base hook:
\code
// Include GC-related lazy list specialization
- #include <cds/intrusive/lazy_list_ptb.h>
+ #include <cds/intrusive/lazy_list_dhp.h>
// Data stored in lazy list
struct my_data: public cds::intrusive::lazy_list::node< cds::gc::PTB >
Equivalent option-based code:
\code
// GC-related specialization
- #include <cds/intrusive/lazy_list_ptb.h>
+ #include <cds/intrusive/lazy_list_dhp.h>
struct my_data {
// see above
--- /dev/null
+//$$CDS-header$$
+
+#ifndef __CDS_INTRUSIVE_LAZY_LIST_DHP_H
+#define __CDS_INTRUSIVE_LAZY_LIST_DHP_H
+
+#include <cds/intrusive/impl/lazy_list.h>
+#include <cds/gc/dhp.h>
+
+#endif // #ifndef __CDS_INTRUSIVE_LAZY_LIST_DHP_H
+++ /dev/null
-//$$CDS-header$$
-
-#ifndef __CDS_INTRUSIVE_LAZY_LIST_PTB_H
-#define __CDS_INTRUSIVE_LAZY_LIST_PTB_H
-
-#include <cds/intrusive/impl/lazy_list.h>
-#include <cds/gc/ptb.h>
-
-#endif // #ifndef __CDS_INTRUSIVE_LAZY_LIST_PTB_H
<ClInclude Include="..\..\..\cds\container\impl\michael_list.h" />\r
<ClInclude Include="..\..\..\cds\container\impl\skip_list_map.h" />\r
<ClInclude Include="..\..\..\cds\container\impl\skip_list_set.h" />\r
+ <ClInclude Include="..\..\..\cds\container\lazy_kvlist_dhp.h" />\r
<ClInclude Include="..\..\..\cds\container\lazy_kvlist_rcu.h" />\r
+ <ClInclude Include="..\..\..\cds\container\lazy_list_dhp.h" />\r
<ClInclude Include="..\..\..\cds\container\lazy_list_rcu.h" />\r
<ClInclude Include="..\..\..\cds\container\michael_kvlist_dhp.h" />\r
<ClInclude Include="..\..\..\cds\container\michael_kvlist_rcu.h" />\r
<ClInclude Include="..\..\..\cds\intrusive\impl\lazy_list.h" />\r
<ClInclude Include="..\..\..\cds\intrusive\impl\michael_list.h" />\r
<ClInclude Include="..\..\..\cds\intrusive\impl\skip_list.h" />\r
+ <ClInclude Include="..\..\..\cds\intrusive\lazy_list_dhp.h" />\r
<ClInclude Include="..\..\..\cds\intrusive\lazy_list_rcu.h" />\r
<ClInclude Include="..\..\..\cds\intrusive\michael_list_dhp.h" />\r
<ClInclude Include="..\..\..\cds\intrusive\michael_list_rcu.h" />\r
<ClInclude Include="..\..\..\cds\intrusive\fcstack.h" />\r
<ClInclude Include="..\..\..\cds\intrusive\lazy_list_hp.h" />\r
<ClInclude Include="..\..\..\cds\intrusive\lazy_list_nogc.h" />\r
- <ClInclude Include="..\..\..\cds\intrusive\lazy_list_ptb.h" />\r
<ClInclude Include="..\..\..\cds\intrusive\michael_list_hp.h" />\r
<ClInclude Include="..\..\..\cds\intrusive\michael_list_nogc.h" />\r
<ClInclude Include="..\..\..\cds\intrusive\michael_set.h" />\r
<ClInclude Include="..\..\..\cds\container\fcstack.h" />\r
<ClInclude Include="..\..\..\cds\container\lazy_kvlist_hp.h" />\r
<ClInclude Include="..\..\..\cds\container\lazy_kvlist_nogc.h" />\r
- <ClInclude Include="..\..\..\cds\container\lazy_kvlist_ptb.h" />\r
<ClInclude Include="..\..\..\cds\container\lazy_list_hp.h" />\r
<ClInclude Include="..\..\..\cds\container\lazy_list_nogc.h" />\r
- <ClInclude Include="..\..\..\cds\container\lazy_list_ptb.h" />\r
<ClInclude Include="..\..\..\cds\container\michael_kvlist_hp.h" />\r
<ClInclude Include="..\..\..\cds\container\michael_kvlist_nogc.h" />\r
<ClInclude Include="..\..\..\cds\container\michael_list_hp.h" />\r
<ClInclude Include="..\..\..\cds\intrusive\lazy_list_nogc.h">\r
<Filter>Header Files\cds\intrusive</Filter>\r
</ClInclude>\r
- <ClInclude Include="..\..\..\cds\intrusive\lazy_list_ptb.h">\r
- <Filter>Header Files\cds\intrusive</Filter>\r
- </ClInclude>\r
<ClInclude Include="..\..\..\cds\intrusive\michael_list_hp.h">\r
<Filter>Header Files\cds\intrusive</Filter>\r
</ClInclude>\r
<ClInclude Include="..\..\..\cds\container\lazy_kvlist_nogc.h">\r
<Filter>Header Files\cds\container</Filter>\r
</ClInclude>\r
- <ClInclude Include="..\..\..\cds\container\lazy_kvlist_ptb.h">\r
- <Filter>Header Files\cds\container</Filter>\r
- </ClInclude>\r
<ClInclude Include="..\..\..\cds\container\lazy_list_hp.h">\r
<Filter>Header Files\cds\container</Filter>\r
</ClInclude>\r
<ClInclude Include="..\..\..\cds\container\lazy_list_nogc.h">\r
<Filter>Header Files\cds\container</Filter>\r
</ClInclude>\r
- <ClInclude Include="..\..\..\cds\container\lazy_list_ptb.h">\r
- <Filter>Header Files\cds\container</Filter>\r
- </ClInclude>\r
<ClInclude Include="..\..\..\cds\container\michael_kvlist_hp.h">\r
<Filter>Header Files\cds\container</Filter>\r
</ClInclude>\r
<ClInclude Include="..\..\..\cds\container\michael_kvlist_dhp.h">\r
<Filter>Header Files\cds\container</Filter>\r
</ClInclude>\r
+ <ClInclude Include="..\..\..\cds\intrusive\lazy_list_dhp.h">\r
+ <Filter>Header Files\cds\intrusive</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="..\..\..\cds\container\lazy_list_dhp.h">\r
+ <Filter>Header Files\cds\container</Filter>\r
+ </ClInclude>\r
+ <ClInclude Include="..\..\..\cds\container\lazy_kvlist_dhp.h">\r
+ <Filter>Header Files\cds\container</Filter>\r
+ </ClInclude>\r
</ItemGroup>\r
</Project>
\ No newline at end of file
<ClInclude Include="..\..\..\tests\test-hdr\ordered_list\hdr_michael_kv.h" />\r
</ItemGroup>\r
<ItemGroup>\r
+ <ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_intrusive_lazy_dhp.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_intrusive_lazy_hp.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_intrusive_lazy_nogc.cpp" />\r
- <ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_intrusive_lazy_ptb.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_intrusive_lazy_rcu_gpb.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_intrusive_lazy_rcu_gpi.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_intrusive_lazy_rcu_gpt.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_intrusive_michael_list_rcu_sht.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_intrusive_michael_nogc.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_intrusive_michael_ptb.cpp" />\r
+ <ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_lazy_dhp.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_lazy_hp.cpp" />\r
+ <ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_lazy_kv_dhp.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_lazy_kv_hp.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_lazy_kv_nogc.cpp" />\r
- <ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_lazy_kv_ptb.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_lazy_kv_rcu_gpb.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_lazy_kv_rcu_gpi.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_lazy_kv_rcu_gpt.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_lazy_kv_rcu_shb.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_lazy_kv_rcu_sht.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_lazy_nogc.cpp" />\r
- <ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_lazy_ptb.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_lazy_rcu_gpb.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_lazy_rcu_gpi.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_lazy_rcu_gpt.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_intrusive_lazy_nogc.cpp">\r
<Filter>intrusive</Filter>\r
</ClCompile>\r
- <ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_intrusive_lazy_ptb.cpp">\r
- <Filter>intrusive</Filter>\r
- </ClCompile>\r
<ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_intrusive_lazy_rcu_gpb.cpp">\r
<Filter>intrusive</Filter>\r
</ClCompile>\r
<ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_lazy_kv_nogc.cpp">\r
<Filter>container</Filter>\r
</ClCompile>\r
- <ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_lazy_kv_ptb.cpp">\r
- <Filter>container</Filter>\r
- </ClCompile>\r
<ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_lazy_nogc.cpp">\r
<Filter>container</Filter>\r
</ClCompile>\r
- <ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_lazy_ptb.cpp">\r
- <Filter>container</Filter>\r
- </ClCompile>\r
<ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_lazy_rcu_gpb.cpp">\r
<Filter>container</Filter>\r
</ClCompile>\r
<ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_michael_rcu_sht.cpp">\r
<Filter>container</Filter>\r
</ClCompile>\r
+ <ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_intrusive_lazy_dhp.cpp">\r
+ <Filter>intrusive</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_lazy_dhp.cpp">\r
+ <Filter>container</Filter>\r
+ </ClCompile>\r
+ <ClCompile Include="..\..\..\tests\test-hdr\ordered_list\hdr_lazy_kv_dhp.cpp">\r
+ <Filter>container</Filter>\r
+ </ClCompile>\r
</ItemGroup>\r
<ItemGroup>\r
<ClInclude Include="..\..\..\tests\test-hdr\ordered_list\hdr_intrusive_lazy.h">\r
//$$CDS-header$$
#include "map/hdr_map.h"
-#include <cds/container/lazy_kvlist_ptb.h>
+#include <cds/container/lazy_kvlist_dhp.h>
#include <cds/container/michael_map.h>
namespace map {
//$$CDS-header$$
#include "map/hdr_map.h"
-#include <cds/container/lazy_list_ptb.h>
+#include <cds/container/lazy_list_dhp.h>
#include <cds/container/split_list_map.h>
namespace map {
void HP_member_cmpmix();
void HP_member_ic();
- void PTB_base_cmp();
- void PTB_base_less();
- void PTB_base_cmpmix();
- void PTB_base_ic();
- void PTB_member_cmp();
- void PTB_member_less();
- void PTB_member_cmpmix();
- void PTB_member_ic();
+ void DHP_base_cmp();
+ void DHP_base_less();
+ void DHP_base_cmpmix();
+ void DHP_base_ic();
+ void DHP_member_cmp();
+ void DHP_member_less();
+ void DHP_member_cmpmix();
+ void DHP_member_ic();
void RCU_GPI_base_cmp();
void RCU_GPI_base_less();
CPPUNIT_TEST(HP_member_cmpmix)
CPPUNIT_TEST(HP_member_ic)
- CPPUNIT_TEST(PTB_base_cmp)
- CPPUNIT_TEST(PTB_base_less)
- CPPUNIT_TEST(PTB_base_cmpmix)
- CPPUNIT_TEST(PTB_base_ic)
- CPPUNIT_TEST(PTB_member_cmp)
- CPPUNIT_TEST(PTB_member_less)
- CPPUNIT_TEST(PTB_member_cmpmix)
- CPPUNIT_TEST(PTB_member_ic)
+ CPPUNIT_TEST(DHP_base_cmp)
+ CPPUNIT_TEST(DHP_base_less)
+ CPPUNIT_TEST(DHP_base_cmpmix)
+ CPPUNIT_TEST(DHP_base_ic)
+ CPPUNIT_TEST(DHP_member_cmp)
+ CPPUNIT_TEST(DHP_member_less)
+ CPPUNIT_TEST(DHP_member_cmpmix)
+ CPPUNIT_TEST(DHP_member_ic)
CPPUNIT_TEST(RCU_GPI_base_cmp)
CPPUNIT_TEST(RCU_GPI_base_less)
--- /dev/null
+//$$CDS-header$$
+
+#include "ordered_list/hdr_intrusive_lazy.h"
+#include <cds/intrusive/lazy_list_dhp.h>
+
+namespace ordlist {
+ void IntrusiveLazyListHeaderTest::DHP_base_cmp()
+ {
+ typedef base_int_item< cds::gc::DHP > item;
+ typedef ci::LazyList< cds::gc::DHP
+ ,item
+ ,ci::lazy_list::make_traits<
+ ci::opt::hook< ci::lazy_list::base_hook< co::gc<cds::gc::DHP> > >
+ ,co::compare< cmp<item> >
+ ,ci::opt::disposer< faked_disposer >
+ >::type
+ > list;
+ test_int<list>();
+ }
+ void IntrusiveLazyListHeaderTest::DHP_base_less()
+ {
+ typedef base_int_item< cds::gc::DHP > item;
+ typedef ci::LazyList< cds::gc::DHP
+ ,item
+ ,ci::lazy_list::make_traits<
+ ci::opt::hook< ci::lazy_list::base_hook< co::gc<cds::gc::DHP> > >
+ ,co::less< less<item> >
+ ,ci::opt::disposer< faked_disposer >
+ >::type
+ > list;
+ test_int<list>();
+ }
+ void IntrusiveLazyListHeaderTest::DHP_base_cmpmix()
+ {
+ typedef base_int_item< cds::gc::DHP > item;
+ typedef ci::LazyList< cds::gc::DHP
+ ,item
+ ,ci::lazy_list::make_traits<
+ ci::opt::hook< ci::lazy_list::base_hook< co::gc<cds::gc::DHP> > >
+ ,co::less< less<item> >
+ ,co::compare< cmp<item> >
+ ,ci::opt::disposer< faked_disposer >
+ >::type
+ > list;
+ test_int<list>();
+ }
+ void IntrusiveLazyListHeaderTest::DHP_base_ic()
+ {
+ typedef base_int_item< cds::gc::DHP > item;
+ typedef ci::LazyList< cds::gc::DHP
+ ,item
+ ,ci::lazy_list::make_traits<
+ ci::opt::hook< ci::lazy_list::base_hook< co::gc<cds::gc::DHP> > >
+ ,co::less< less<item> >
+ ,co::compare< cmp<item> >
+ ,ci::opt::disposer< faked_disposer >
+ ,co::item_counter< cds::atomicity::item_counter >
+ >::type
+ > list;
+ test_int<list>();
+ }
+ void IntrusiveLazyListHeaderTest::DHP_member_cmp()
+ {
+ typedef member_int_item< cds::gc::DHP > item;
+ typedef ci::LazyList< cds::gc::DHP
+ ,item
+ ,ci::lazy_list::make_traits<
+ ci::opt::hook< ci::lazy_list::member_hook<
+ offsetof( item, hMember ),
+ co::gc<cds::gc::DHP>
+ > >
+ ,co::compare< cmp<item> >
+ ,ci::opt::disposer< faked_disposer >
+ >::type
+ > list;
+ test_int<list>();
+ }
+ void IntrusiveLazyListHeaderTest::DHP_member_less()
+ {
+ typedef member_int_item< cds::gc::DHP > item;
+ typedef ci::LazyList< cds::gc::DHP
+ ,item
+ ,ci::lazy_list::make_traits<
+ ci::opt::hook< ci::lazy_list::member_hook<
+ offsetof( item, hMember ),
+ co::gc<cds::gc::DHP>
+ > >
+ ,co::less< less<item> >
+ ,ci::opt::disposer< faked_disposer >
+ >::type
+ > list;
+ test_int<list>();
+ }
+ void IntrusiveLazyListHeaderTest::DHP_member_cmpmix()
+ {
+ typedef member_int_item< cds::gc::DHP > item;
+ typedef ci::LazyList< cds::gc::DHP
+ ,item
+ ,ci::lazy_list::make_traits<
+ ci::opt::hook< ci::lazy_list::member_hook<
+ offsetof( item, hMember ),
+ co::gc<cds::gc::DHP>
+ > >
+ ,co::less< less<item> >
+ ,co::compare< cmp<item> >
+ ,ci::opt::disposer< faked_disposer >
+ >::type
+ > list;
+ test_int<list>();
+ }
+ void IntrusiveLazyListHeaderTest::DHP_member_ic()
+ {
+ typedef member_int_item< cds::gc::DHP > item;
+ typedef ci::LazyList< cds::gc::DHP
+ ,item
+ ,ci::lazy_list::make_traits<
+ ci::opt::hook< ci::lazy_list::member_hook<
+ offsetof( item, hMember ),
+ co::gc<cds::gc::DHP>
+ > >
+ ,co::compare< cmp<item> >
+ ,ci::opt::disposer< faked_disposer >
+ ,co::item_counter< cds::atomicity::item_counter >
+ >::type
+ > list;
+ test_int<list>();
+ }
+
+} // namespace ordlist
+++ /dev/null
-//$$CDS-header$$
-
-#include "ordered_list/hdr_intrusive_lazy.h"
-#include <cds/intrusive/lazy_list_ptb.h>
-
-namespace ordlist {
- void IntrusiveLazyListHeaderTest::PTB_base_cmp()
- {
- typedef base_int_item< cds::gc::PTB > item;
- typedef ci::LazyList< cds::gc::PTB
- ,item
- ,ci::lazy_list::make_traits<
- ci::opt::hook< ci::lazy_list::base_hook< co::gc<cds::gc::PTB> > >
- ,co::compare< cmp<item> >
- ,ci::opt::disposer< faked_disposer >
- >::type
- > list;
- test_int<list>();
- }
- void IntrusiveLazyListHeaderTest::PTB_base_less()
- {
- typedef base_int_item< cds::gc::PTB > item;
- typedef ci::LazyList< cds::gc::PTB
- ,item
- ,ci::lazy_list::make_traits<
- ci::opt::hook< ci::lazy_list::base_hook< co::gc<cds::gc::PTB> > >
- ,co::less< less<item> >
- ,ci::opt::disposer< faked_disposer >
- >::type
- > list;
- test_int<list>();
- }
- void IntrusiveLazyListHeaderTest::PTB_base_cmpmix()
- {
- typedef base_int_item< cds::gc::PTB > item;
- typedef ci::LazyList< cds::gc::PTB
- ,item
- ,ci::lazy_list::make_traits<
- ci::opt::hook< ci::lazy_list::base_hook< co::gc<cds::gc::PTB> > >
- ,co::less< less<item> >
- ,co::compare< cmp<item> >
- ,ci::opt::disposer< faked_disposer >
- >::type
- > list;
- test_int<list>();
- }
- void IntrusiveLazyListHeaderTest::PTB_base_ic()
- {
- typedef base_int_item< cds::gc::PTB > item;
- typedef ci::LazyList< cds::gc::PTB
- ,item
- ,ci::lazy_list::make_traits<
- ci::opt::hook< ci::lazy_list::base_hook< co::gc<cds::gc::PTB> > >
- ,co::less< less<item> >
- ,co::compare< cmp<item> >
- ,ci::opt::disposer< faked_disposer >
- ,co::item_counter< cds::atomicity::item_counter >
- >::type
- > list;
- test_int<list>();
- }
- void IntrusiveLazyListHeaderTest::PTB_member_cmp()
- {
- typedef member_int_item< cds::gc::PTB > item;
- typedef ci::LazyList< cds::gc::PTB
- ,item
- ,ci::lazy_list::make_traits<
- ci::opt::hook< ci::lazy_list::member_hook<
- offsetof( item, hMember ),
- co::gc<cds::gc::PTB>
- > >
- ,co::compare< cmp<item> >
- ,ci::opt::disposer< faked_disposer >
- >::type
- > list;
- test_int<list>();
- }
- void IntrusiveLazyListHeaderTest::PTB_member_less()
- {
- typedef member_int_item< cds::gc::PTB > item;
- typedef ci::LazyList< cds::gc::PTB
- ,item
- ,ci::lazy_list::make_traits<
- ci::opt::hook< ci::lazy_list::member_hook<
- offsetof( item, hMember ),
- co::gc<cds::gc::PTB>
- > >
- ,co::less< less<item> >
- ,ci::opt::disposer< faked_disposer >
- >::type
- > list;
- test_int<list>();
- }
- void IntrusiveLazyListHeaderTest::PTB_member_cmpmix()
- {
- typedef member_int_item< cds::gc::PTB > item;
- typedef ci::LazyList< cds::gc::PTB
- ,item
- ,ci::lazy_list::make_traits<
- ci::opt::hook< ci::lazy_list::member_hook<
- offsetof( item, hMember ),
- co::gc<cds::gc::PTB>
- > >
- ,co::less< less<item> >
- ,co::compare< cmp<item> >
- ,ci::opt::disposer< faked_disposer >
- >::type
- > list;
- test_int<list>();
- }
- void IntrusiveLazyListHeaderTest::PTB_member_ic()
- {
- typedef member_int_item< cds::gc::PTB > item;
- typedef ci::LazyList< cds::gc::PTB
- ,item
- ,ci::lazy_list::make_traits<
- ci::opt::hook< ci::lazy_list::member_hook<
- offsetof( item, hMember ),
- co::gc<cds::gc::PTB>
- > >
- ,co::compare< cmp<item> >
- ,ci::opt::disposer< faked_disposer >
- ,co::item_counter< cds::atomicity::item_counter >
- >::type
- > list;
- test_int<list>();
- }
-
-} // namespace ordlist
void HP_cmpmix();
void HP_ic();
- void PTB_cmp();
- void PTB_less();
- void PTB_cmpmix();
- void PTB_ic();
+ void DHP_cmp();
+ void DHP_less();
+ void DHP_cmpmix();
+ void DHP_ic();
void RCU_GPI_cmp();
void RCU_GPI_less();
CPPUNIT_TEST(HP_cmpmix)
CPPUNIT_TEST(HP_ic)
- CPPUNIT_TEST(PTB_cmp)
- CPPUNIT_TEST(PTB_less)
- CPPUNIT_TEST(PTB_cmpmix)
- CPPUNIT_TEST(PTB_ic)
+ CPPUNIT_TEST(DHP_cmp)
+ CPPUNIT_TEST(DHP_less)
+ CPPUNIT_TEST(DHP_cmpmix)
+ CPPUNIT_TEST(DHP_ic)
CPPUNIT_TEST(RCU_GPI_cmp)
CPPUNIT_TEST(RCU_GPI_less)
--- /dev/null
+//$$CDS-header$$
+
+#include "ordered_list/hdr_lazy.h"
+#include <cds/container/lazy_list_dhp.h>
+
+namespace ordlist {
+ namespace {
+ struct DHP_cmp_traits: public cc::lazy_list::type_traits
+ {
+ typedef LazyListTestHeader::cmp<LazyListTestHeader::item> compare;
+ };
+ }
+ void LazyListTestHeader::DHP_cmp()
+ {
+ // traits-based version
+ typedef cc::LazyList< cds::gc::DHP, item, DHP_cmp_traits > list;
+ test< list >();
+
+ // option-based version
+
+ typedef cc::LazyList< cds::gc::DHP, item,
+ cc::lazy_list::make_traits<
+ cc::opt::compare< cmp<item> >
+ >::type
+ > opt_list;
+ test< opt_list >();
+ }
+
+ namespace {
+ struct DHP_less_traits: public cc::lazy_list::type_traits
+ {
+ typedef LazyListTestHeader::lt<LazyListTestHeader::item> less;
+ };
+ }
+ void LazyListTestHeader::DHP_less()
+ {
+ // traits-based version
+ typedef cc::LazyList< cds::gc::DHP, item, DHP_less_traits > list;
+ test< list >();
+
+ // option-based version
+
+ typedef cc::LazyList< cds::gc::DHP, item,
+ cc::lazy_list::make_traits<
+ cc::opt::less< lt<item> >
+ >::type
+ > opt_list;
+ test< opt_list >();
+ }
+
+ namespace {
+ struct DHP_cmpmix_traits: public cc::lazy_list::type_traits
+ {
+ typedef LazyListTestHeader::cmp<LazyListTestHeader::item> compare;
+ typedef LazyListTestHeader::lt<LazyListTestHeader::item> less;
+ };
+ }
+ void LazyListTestHeader::DHP_cmpmix()
+ {
+ // traits-based version
+ typedef cc::LazyList< cds::gc::DHP, item, DHP_cmpmix_traits > list;
+ test< list >();
+
+ // option-based version
+
+ typedef cc::LazyList< cds::gc::DHP, item,
+ cc::lazy_list::make_traits<
+ cc::opt::compare< cmp<item> >
+ ,cc::opt::less< lt<item> >
+ >::type
+ > opt_list;
+ test< opt_list >();
+ }
+
+ namespace {
+ struct DHP_ic_traits: public cc::lazy_list::type_traits
+ {
+ typedef LazyListTestHeader::lt<LazyListTestHeader::item> less;
+ typedef cds::atomicity::item_counter item_counter;
+ };
+ }
+ void LazyListTestHeader::DHP_ic()
+ {
+ // traits-based version
+ typedef cc::LazyList< cds::gc::DHP, item, DHP_ic_traits > list;
+ test< list >();
+
+ // option-based version
+
+ typedef cc::LazyList< cds::gc::DHP, item,
+ cc::lazy_list::make_traits<
+ cc::opt::less< lt<item> >
+ ,cc::opt::item_counter< cds::atomicity::item_counter >
+ >::type
+ > opt_list;
+ test< opt_list >();
+ }
+
+} // namespace ordlist
+
void HP_cmpmix();
void HP_ic();
- void PTB_cmp();
- void PTB_less();
- void PTB_cmpmix();
- void PTB_ic();
+ void DHP_cmp();
+ void DHP_less();
+ void DHP_cmpmix();
+ void DHP_ic();
void RCU_GPI_cmp();
void RCU_GPI_less();
CPPUNIT_TEST(HP_cmpmix)
CPPUNIT_TEST(HP_ic)
- CPPUNIT_TEST(PTB_cmp)
- CPPUNIT_TEST(PTB_less)
- CPPUNIT_TEST(PTB_cmpmix)
- CPPUNIT_TEST(PTB_ic)
+ CPPUNIT_TEST(DHP_cmp)
+ CPPUNIT_TEST(DHP_less)
+ CPPUNIT_TEST(DHP_cmpmix)
+ CPPUNIT_TEST(DHP_ic)
CPPUNIT_TEST(RCU_GPI_cmp)
CPPUNIT_TEST(RCU_GPI_less)
--- /dev/null
+//$$CDS-header$$
+
+#include "ordered_list/hdr_lazy_kv.h"
+#include <cds/container/lazy_kvlist_dhp.h>
+
+namespace ordlist {
+ namespace {
+ struct DHP_cmp_traits: public cc::lazy_list::type_traits
+ {
+ typedef LazyKVListTestHeader::cmp<LazyKVListTestHeader::key_type> compare;
+ };
+ }
+ void LazyKVListTestHeader::DHP_cmp()
+ {
+ // traits-based version
+ typedef cc::LazyKVList< cds::gc::DHP, key_type, value_type, DHP_cmp_traits > list;
+ test< list >();
+
+ // option-based version
+
+ typedef cc::LazyKVList< cds::gc::DHP, key_type, value_type,
+ cc::lazy_list::make_traits<
+ cc::opt::compare< cmp<key_type> >
+ >::type
+ > opt_list;
+ test< opt_list >();
+ }
+
+ namespace {
+ struct DHP_less_traits: public cc::lazy_list::type_traits
+ {
+ typedef LazyKVListTestHeader::lt<LazyKVListTestHeader::key_type> less;
+ };
+ }
+ void LazyKVListTestHeader::DHP_less()
+ {
+ // traits-based version
+ typedef cc::LazyKVList< cds::gc::DHP, key_type, value_type, DHP_less_traits > list;
+ test< list >();
+
+ // option-based version
+
+ typedef cc::LazyKVList< cds::gc::DHP, key_type, value_type,
+ cc::lazy_list::make_traits<
+ cc::opt::less< lt<key_type> >
+ >::type
+ > opt_list;
+ test< opt_list >();
+ }
+
+ namespace {
+ struct DHP_cmpmix_traits: public cc::lazy_list::type_traits
+ {
+ typedef LazyKVListTestHeader::cmp<LazyKVListTestHeader::key_type> compare;
+ typedef LazyKVListTestHeader::lt<LazyKVListTestHeader::key_type> less;
+ };
+ }
+ void LazyKVListTestHeader::DHP_cmpmix()
+ {
+ // traits-based version
+ typedef cc::LazyKVList< cds::gc::DHP, key_type, value_type, DHP_cmpmix_traits > list;
+ test< list >();
+
+ // option-based version
+
+ typedef cc::LazyKVList< cds::gc::DHP, key_type, value_type,
+ cc::lazy_list::make_traits<
+ cc::opt::compare< cmp<key_type> >
+ ,cc::opt::less< lt<key_type> >
+ >::type
+ > opt_list;
+ test< opt_list >();
+ }
+
+ namespace {
+ struct DHP_ic_traits: public cc::lazy_list::type_traits
+ {
+ typedef LazyKVListTestHeader::lt<LazyKVListTestHeader::key_type> less;
+ typedef cds::atomicity::item_counter item_counter;
+ };
+ }
+ void LazyKVListTestHeader::DHP_ic()
+ {
+ // traits-based version
+ typedef cc::LazyKVList< cds::gc::DHP, key_type, value_type, DHP_ic_traits > list;
+ test< list >();
+
+ // option-based version
+
+ typedef cc::LazyKVList< cds::gc::DHP, key_type, value_type,
+ cc::lazy_list::make_traits<
+ cc::opt::less< lt<key_type> >
+ ,cc::opt::item_counter< cds::atomicity::item_counter >
+ >::type
+ > opt_list;
+ test< opt_list >();
+ }
+
+} // namespace ordlist
+
+++ /dev/null
-//$$CDS-header$$
-
-#include "ordered_list/hdr_lazy_kv.h"
-#include <cds/container/lazy_kvlist_ptb.h>
-
-namespace ordlist {
- namespace {
- struct PTB_cmp_traits: public cc::lazy_list::type_traits
- {
- typedef LazyKVListTestHeader::cmp<LazyKVListTestHeader::key_type> compare;
- };
- }
- void LazyKVListTestHeader::PTB_cmp()
- {
- // traits-based version
- typedef cc::LazyKVList< cds::gc::PTB, key_type, value_type, PTB_cmp_traits > list;
- test< list >();
-
- // option-based version
-
- typedef cc::LazyKVList< cds::gc::PTB, key_type, value_type,
- cc::lazy_list::make_traits<
- cc::opt::compare< cmp<key_type> >
- >::type
- > opt_list;
- test< opt_list >();
- }
-
- namespace {
- struct PTB_less_traits: public cc::lazy_list::type_traits
- {
- typedef LazyKVListTestHeader::lt<LazyKVListTestHeader::key_type> less;
- };
- }
- void LazyKVListTestHeader::PTB_less()
- {
- // traits-based version
- typedef cc::LazyKVList< cds::gc::PTB, key_type, value_type, PTB_less_traits > list;
- test< list >();
-
- // option-based version
-
- typedef cc::LazyKVList< cds::gc::PTB, key_type, value_type,
- cc::lazy_list::make_traits<
- cc::opt::less< lt<key_type> >
- >::type
- > opt_list;
- test< opt_list >();
- }
-
- namespace {
- struct PTB_cmpmix_traits: public cc::lazy_list::type_traits
- {
- typedef LazyKVListTestHeader::cmp<LazyKVListTestHeader::key_type> compare;
- typedef LazyKVListTestHeader::lt<LazyKVListTestHeader::key_type> less;
- };
- }
- void LazyKVListTestHeader::PTB_cmpmix()
- {
- // traits-based version
- typedef cc::LazyKVList< cds::gc::PTB, key_type, value_type, PTB_cmpmix_traits > list;
- test< list >();
-
- // option-based version
-
- typedef cc::LazyKVList< cds::gc::PTB, key_type, value_type,
- cc::lazy_list::make_traits<
- cc::opt::compare< cmp<key_type> >
- ,cc::opt::less< lt<key_type> >
- >::type
- > opt_list;
- test< opt_list >();
- }
-
- namespace {
- struct PTB_ic_traits: public cc::lazy_list::type_traits
- {
- typedef LazyKVListTestHeader::lt<LazyKVListTestHeader::key_type> less;
- typedef cds::atomicity::item_counter item_counter;
- };
- }
- void LazyKVListTestHeader::PTB_ic()
- {
- // traits-based version
- typedef cc::LazyKVList< cds::gc::PTB, key_type, value_type, PTB_ic_traits > list;
- test< list >();
-
- // option-based version
-
- typedef cc::LazyKVList< cds::gc::PTB, key_type, value_type,
- cc::lazy_list::make_traits<
- cc::opt::less< lt<key_type> >
- ,cc::opt::item_counter< cds::atomicity::item_counter >
- >::type
- > opt_list;
- test< opt_list >();
- }
-
-} // namespace ordlist
-
+++ /dev/null
-//$$CDS-header$$
-
-#include "ordered_list/hdr_lazy.h"
-#include <cds/container/lazy_list_ptb.h>
-
-namespace ordlist {
- namespace {
- struct PTB_cmp_traits: public cc::lazy_list::type_traits
- {
- typedef LazyListTestHeader::cmp<LazyListTestHeader::item> compare;
- };
- }
- void LazyListTestHeader::PTB_cmp()
- {
- // traits-based version
- typedef cc::LazyList< cds::gc::PTB, item, PTB_cmp_traits > list;
- test< list >();
-
- // option-based version
-
- typedef cc::LazyList< cds::gc::PTB, item,
- cc::lazy_list::make_traits<
- cc::opt::compare< cmp<item> >
- >::type
- > opt_list;
- test< opt_list >();
- }
-
- namespace {
- struct PTB_less_traits: public cc::lazy_list::type_traits
- {
- typedef LazyListTestHeader::lt<LazyListTestHeader::item> less;
- };
- }
- void LazyListTestHeader::PTB_less()
- {
- // traits-based version
- typedef cc::LazyList< cds::gc::PTB, item, PTB_less_traits > list;
- test< list >();
-
- // option-based version
-
- typedef cc::LazyList< cds::gc::PTB, item,
- cc::lazy_list::make_traits<
- cc::opt::less< lt<item> >
- >::type
- > opt_list;
- test< opt_list >();
- }
-
- namespace {
- struct PTB_cmpmix_traits: public cc::lazy_list::type_traits
- {
- typedef LazyListTestHeader::cmp<LazyListTestHeader::item> compare;
- typedef LazyListTestHeader::lt<LazyListTestHeader::item> less;
- };
- }
- void LazyListTestHeader::PTB_cmpmix()
- {
- // traits-based version
- typedef cc::LazyList< cds::gc::PTB, item, PTB_cmpmix_traits > list;
- test< list >();
-
- // option-based version
-
- typedef cc::LazyList< cds::gc::PTB, item,
- cc::lazy_list::make_traits<
- cc::opt::compare< cmp<item> >
- ,cc::opt::less< lt<item> >
- >::type
- > opt_list;
- test< opt_list >();
- }
-
- namespace {
- struct PTB_ic_traits: public cc::lazy_list::type_traits
- {
- typedef LazyListTestHeader::lt<LazyListTestHeader::item> less;
- typedef cds::atomicity::item_counter item_counter;
- };
- }
- void LazyListTestHeader::PTB_ic()
- {
- // traits-based version
- typedef cc::LazyList< cds::gc::PTB, item, PTB_ic_traits > list;
- test< list >();
-
- // option-based version
-
- typedef cc::LazyList< cds::gc::PTB, item,
- cc::lazy_list::make_traits<
- cc::opt::less< lt<item> >
- ,cc::opt::item_counter< cds::atomicity::item_counter >
- >::type
- > opt_list;
- test< opt_list >();
- }
-
-} // namespace ordlist
-
//$$CDS-header$$
#include "set/hdr_intrusive_set.h"
-#include <cds/intrusive/lazy_list_ptb.h>
+#include <cds/intrusive/lazy_list_dhp.h>
#include <cds/intrusive/michael_set.h>
namespace set {
//$$CDS-header$$
#include "set/hdr_intrusive_set.h"
-#include <cds/intrusive/lazy_list_ptb.h>
+#include <cds/intrusive/lazy_list_dhp.h>
#include <cds/intrusive/split_list.h>
namespace set {
//$$CDS-header$$
#include "set/hdr_set.h"
-#include <cds/container/lazy_list_ptb.h>
+#include <cds/container/lazy_list_dhp.h>
#include <cds/container/michael_set.h>
namespace set {
//$$CDS-header$$
#include "set/hdr_set.h"
-#include <cds/container/lazy_list_ptb.h>
+#include <cds/container/lazy_list_dhp.h>
#include <cds/container/split_list_set.h>
namespace set {
#include <cds/container/michael_kvlist_nogc.h>
#include <cds/container/lazy_kvlist_hp.h>
-#include <cds/container/lazy_kvlist_ptb.h>
+#include <cds/container/lazy_kvlist_dhp.h>
#include <cds/container/lazy_kvlist_rcu.h>
#include <cds/container/lazy_kvlist_nogc.h>
>::type
> LazyList_HP_less_michaelAlloc;
- typedef cc::LazyKVList< cds::gc::PTB, Key, Value,
+ typedef cc::LazyKVList< cds::gc::DHP, Key, Value,
typename cc::lazy_list::make_traits<
co::compare< compare >
>::type
- > LazyList_PTB_cmp_stdAlloc;
+ > LazyList_DHP_cmp_stdAlloc;
- typedef cc::LazyKVList< cds::gc::PTB, Key, Value,
+ typedef cc::LazyKVList< cds::gc::DHP, Key, Value,
typename cc::lazy_list::make_traits<
co::compare< compare >
,co::memory_model< co::v::sequential_consistent >
>::type
- > LazyList_PTB_cmp_stdAlloc_seqcst;
+ > LazyList_DHP_cmp_stdAlloc_seqcst;
- typedef cc::LazyKVList< cds::gc::PTB, Key, Value,
+ typedef cc::LazyKVList< cds::gc::DHP, Key, Value,
typename cc::lazy_list::make_traits<
co::compare< compare >,
co::allocator< memory::MichaelAllocator<int> >
>::type
- > LazyList_PTB_cmp_michaelAlloc;
+ > LazyList_DHP_cmp_michaelAlloc;
- typedef cc::LazyKVList< cds::gc::PTB, Key, Value,
+ typedef cc::LazyKVList< cds::gc::DHP, Key, Value,
typename cc::lazy_list::make_traits<
co::less< less >
>::type
- > LazyList_PTB_less_stdAlloc;
+ > LazyList_DHP_less_stdAlloc;
- typedef cc::LazyKVList< cds::gc::PTB, Key, Value,
+ typedef cc::LazyKVList< cds::gc::DHP, Key, Value,
typename cc::lazy_list::make_traits<
co::less< less >
,co::memory_model< co::v::sequential_consistent >
>::type
- > LazyList_PTB_less_stdAlloc_seqcst;
+ > LazyList_DHP_less_stdAlloc_seqcst;
- typedef cc::LazyKVList< cds::gc::PTB, Key, Value,
+ typedef cc::LazyKVList< cds::gc::DHP, Key, Value,
typename cc::lazy_list::make_traits<
co::less< less >,
co::allocator< memory::MichaelAllocator<int> >
>::type
- > LazyList_PTB_less_michaelAlloc;
+ > LazyList_DHP_less_michaelAlloc;
// RCU
typedef cc::LazyKVList< rcu_gpi, Key, Value,
>::type
> MichaelMap_Lazy_HP_less_michaelAlloc;
- typedef cc::MichaelHashMap< cds::gc::PTB, LazyList_PTB_cmp_stdAlloc,
+ typedef cc::MichaelHashMap< cds::gc::PTB, LazyList_DHP_cmp_stdAlloc,
typename cc::michael_map::make_traits<
co::hash< hash >
>::type
> MichaelMap_Lazy_PTB_cmp_stdAlloc;
- typedef cc::MichaelHashMap< cds::gc::PTB, LazyList_PTB_cmp_stdAlloc_seqcst,
+ typedef cc::MichaelHashMap< cds::gc::PTB, LazyList_DHP_cmp_stdAlloc_seqcst,
typename cc::michael_map::make_traits<
co::hash< hash >
>::type
> MichaelMap_Lazy_PTB_cmp_stdAlloc_seqcst;
- typedef cc::MichaelHashMap< cds::gc::PTB, LazyList_PTB_cmp_michaelAlloc,
+ typedef cc::MichaelHashMap< cds::gc::PTB, LazyList_DHP_cmp_michaelAlloc,
typename cc::michael_map::make_traits<
co::hash< hash >,
co::allocator< memory::MichaelAllocator<int> >
>::type
> MichaelMap_Lazy_PTB_cmp_michaelAlloc;
- typedef cc::MichaelHashMap< cds::gc::PTB, LazyList_PTB_less_stdAlloc,
+ typedef cc::MichaelHashMap< cds::gc::PTB, LazyList_DHP_less_stdAlloc,
typename cc::michael_map::make_traits<
co::hash< hash >
>::type
> MichaelMap_Lazy_PTB_less_stdAlloc;
- typedef cc::MichaelHashMap< cds::gc::PTB, LazyList_PTB_less_stdAlloc_seqcst,
+ typedef cc::MichaelHashMap< cds::gc::PTB, LazyList_DHP_less_stdAlloc_seqcst,
typename cc::michael_map::make_traits<
co::hash< hash >
>::type
> MichaelMap_Lazy_PTB_less_stdAlloc_seqcst;
- typedef cc::MichaelHashMap< cds::gc::PTB, LazyList_PTB_less_michaelAlloc,
+ typedef cc::MichaelHashMap< cds::gc::PTB, LazyList_DHP_less_michaelAlloc,
typename cc::michael_map::make_traits<
co::hash< hash >,
co::allocator< memory::MichaelAllocator<int> >
#include <cds/container/michael_list_dhp.h>
#include <cds/container/michael_list_rcu.h>
#include <cds/container/lazy_list_hp.h>
-#include <cds/container/lazy_list_ptb.h>
+#include <cds/container/lazy_list_dhp.h>
#include <cds/container/lazy_list_rcu.h>
#include <cds/container/michael_set.h>
# include <cds/container/striped_set/boost_vector.h>
# include <cds/container/striped_set/boost_stable_vector.h>
# include <cds/container/striped_set/boost_set.h>
-//# if !(CDS_COMPILER == CDS_COMPILER_MSVC && CDS_COMPILER_VERSION >= 1700)
-//# define CDS_UNIT_MAP_TYPES_ENABLE_BOOST_FLAT_CONTAINERS
-# include <cds/container/striped_set/boost_flat_set.h>
-//# endif
+# include <cds/container/striped_set/boost_flat_set.h>
#endif
#include <cds/container/striped_set.h>
>::type
> LazyList_HP_less_michaelAlloc;
- typedef cc::LazyList< cds::gc::PTB, key_val,
+ typedef cc::LazyList< cds::gc::DHP, key_val,
typename cc::lazy_list::make_traits<
co::compare< compare >
>::type
- > LazyList_PTB_cmp_stdAlloc;
+ > LazyList_DHP_cmp_stdAlloc;
- typedef cc::LazyList< cds::gc::PTB, key_val,
+ typedef cc::LazyList< cds::gc::DHP, key_val,
typename cc::lazy_list::make_traits<
co::compare< compare >
,co::memory_model< co::v::sequential_consistent >
>::type
- > LazyList_PTB_cmp_stdAlloc_seqcst;
+ > LazyList_DHP_cmp_stdAlloc_seqcst;
- typedef cc::LazyList< cds::gc::PTB, key_val,
+ typedef cc::LazyList< cds::gc::DHP, key_val,
typename cc::lazy_list::make_traits<
co::compare< compare >,
co::allocator< memory::MichaelAllocator<int> >
>::type
- > LazyList_PTB_cmp_michaelAlloc;
+ > LazyList_DHP_cmp_michaelAlloc;
- typedef cc::LazyList< cds::gc::PTB, key_val,
+ typedef cc::LazyList< cds::gc::DHP, key_val,
typename cc::lazy_list::make_traits<
co::less< less >
>::type
- > LazyList_PTB_less_stdAlloc;
+ > LazyList_DHP_less_stdAlloc;
- typedef cc::LazyList< cds::gc::PTB, key_val,
+ typedef cc::LazyList< cds::gc::DHP, key_val,
typename cc::lazy_list::make_traits<
co::less< less >
,co::memory_model< co::v::sequential_consistent >
>::type
- > LazyList_PTB_less_stdAlloc_seqcst;
+ > LazyList_DHP_less_stdAlloc_seqcst;
- typedef cc::LazyList< cds::gc::PTB, key_val,
+ typedef cc::LazyList< cds::gc::DHP, key_val,
typename cc::lazy_list::make_traits<
co::less< less >,
co::allocator< memory::MichaelAllocator<int> >
>::type
- > LazyList_PTB_less_michaelAlloc;
+ > LazyList_DHP_less_michaelAlloc;
// RCU
typedef cc::LazyList< rcu_gpi, key_val,
>::type
> MichaelSet_Lazy_HP_less_michaelAlloc;
- typedef cc::MichaelHashSet< cds::gc::PTB, LazyList_PTB_cmp_stdAlloc,
+ typedef cc::MichaelHashSet< cds::gc::PTB, LazyList_DHP_cmp_stdAlloc,
typename cc::michael_set::make_traits<
co::hash< hash >
>::type
> MichaelSet_Lazy_PTB_cmp_stdAlloc;
- typedef cc::MichaelHashSet< cds::gc::PTB, LazyList_PTB_cmp_stdAlloc_seqcst,
+ typedef cc::MichaelHashSet< cds::gc::PTB, LazyList_DHP_cmp_stdAlloc_seqcst,
typename cc::michael_set::make_traits<
co::hash< hash >
>::type
> MichaelSet_Lazy_PTB_cmp_stdAlloc_seqcst;
- typedef cc::MichaelHashSet< cds::gc::PTB, LazyList_PTB_cmp_michaelAlloc,
+ typedef cc::MichaelHashSet< cds::gc::PTB, LazyList_DHP_cmp_michaelAlloc,
typename cc::michael_set::make_traits<
co::hash< hash >,
co::allocator< memory::MichaelAllocator<int> >
>::type
> MichaelSet_Lazy_PTB_cmp_michaelAlloc;
- typedef cc::MichaelHashSet< cds::gc::PTB, LazyList_PTB_less_stdAlloc,
+ typedef cc::MichaelHashSet< cds::gc::PTB, LazyList_DHP_less_stdAlloc,
typename cc::michael_set::make_traits<
co::hash< hash >
>::type
> MichaelSet_Lazy_PTB_less_stdAlloc;
- typedef cc::MichaelHashSet< cds::gc::PTB, LazyList_PTB_less_stdAlloc_seqcst,
+ typedef cc::MichaelHashSet< cds::gc::PTB, LazyList_DHP_less_stdAlloc_seqcst,
typename cc::michael_set::make_traits<
co::hash< hash >
>::type
> MichaelSet_Lazy_PTB_less_stdAlloc_seqcst;
- typedef cc::MichaelHashSet< cds::gc::PTB, LazyList_PTB_less_michaelAlloc,
+ typedef cc::MichaelHashSet< cds::gc::PTB, LazyList_DHP_less_michaelAlloc,
typename cc::michael_set::make_traits<
co::hash< hash >,
co::allocator< memory::MichaelAllocator<int> >