#include <cds/urcu/signal_threaded.h>
#include <cds/container/michael_kvlist_hp.h>
-#include <cds/container/michael_kvlist_hrc.h>
-#include <cds/container/michael_kvlist_ptb.h>
+#include <cds/container/michael_kvlist_dhp.h>
#include <cds/container/michael_kvlist_rcu.h>
#include <cds/container/michael_kvlist_nogc.h>
#include <cds/container/lazy_kvlist_hp.h>
-#include <cds/container/lazy_kvlist_hrc.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>
#include <cds/container/cuckoo_map.h>
#include <cds/container/skip_list_map_hp.h>
-#include <cds/container/skip_list_map_hrc.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>
}
};
- template <typename K, typename V, CDS_DECL_OPTIONS10>
+ template <typename K, typename V, typename... Options>
class CuckooStripedMap:
public cc::CuckooMap< K, V,
typename cc::cuckoo::make_traits<
co::mutex_policy< cc::cuckoo::striping<> >
- ,CDS_OPTIONS10
+ ,Options...
>::type
>
{
public:
typedef typename cc::cuckoo::make_traits<
co::mutex_policy< cc::cuckoo::striping<> >
- ,CDS_OPTIONS10
+ ,Options...
>::type cuckoo_traits;
typedef cc::CuckooMap< K, V, cuckoo_traits > cuckoo_base_class;
}
};
- template <typename K, typename V, CDS_DECL_OPTIONS10>
+ template <typename K, typename V, typename... Options>
class CuckooRefinableMap:
public cc::CuckooMap< K, V,
typename cc::cuckoo::make_traits<
co::mutex_policy< cc::cuckoo::refinable<> >
- ,CDS_OPTIONS10
+ ,Options...
>::type
>
{
public:
typedef typename cc::cuckoo::make_traits<
co::mutex_policy< cc::cuckoo::refinable<> >
- ,CDS_OPTIONS10
+ ,Options...
>::type cuckoo_traits;
typedef cc::CuckooMap< K, V, cuckoo_traits > cuckoo_base_class;
>::type
> MichaelList_HP_less_michaelAlloc;
- typedef cc::MichaelKVList< cds::gc::HRC, Key, Value,
+ typedef cc::MichaelKVList< cds::gc::DHP, Key, Value,
typename cc::michael_list::make_traits<
co::compare< compare >
>::type
- > MichaelList_HRC_cmp_stdAlloc;
+ > MichaelList_DHP_cmp_stdAlloc;
- typedef cc::MichaelKVList< cds::gc::HRC, Key, Value,
+ typedef cc::MichaelKVList< cds::gc::DHP, Key, Value,
typename cc::michael_list::make_traits<
co::compare< compare >
,co::memory_model< co::v::sequential_consistent >
>::type
- > MichaelList_HRC_cmp_stdAlloc_seqcst;
+ > MichaelList_DHP_cmp_stdAlloc_seqcst;
- typedef cc::MichaelKVList< cds::gc::HRC, Key, Value,
+ typedef cc::MichaelKVList< cds::gc::DHP, Key, Value,
typename cc::michael_list::make_traits<
co::compare< compare >,
co::allocator< memory::MichaelAllocator<int> >
>::type
- > MichaelList_HRC_cmp_michaelAlloc;
+ > MichaelList_DHP_cmp_michaelAlloc;
- typedef cc::MichaelKVList< cds::gc::HRC, Key, Value,
+ typedef cc::MichaelKVList< cds::gc::DHP, Key, Value,
typename cc::michael_list::make_traits<
co::less< less >
>::type
- > MichaelList_HRC_less_stdAlloc;
+ > MichaelList_DHP_less_stdAlloc;
- typedef cc::MichaelKVList< cds::gc::HRC, Key, Value,
+ typedef cc::MichaelKVList< cds::gc::DHP, Key, Value,
typename cc::michael_list::make_traits<
co::less< less >
,co::memory_model< co::v::sequential_consistent >
>::type
- > MichaelList_HRC_less_stdAlloc_seqcst;
+ > MichaelList_DHP_less_stdAlloc_seqcst;
- typedef cc::MichaelKVList< cds::gc::HRC, Key, Value,
+ typedef cc::MichaelKVList< cds::gc::DHP, Key, Value,
typename cc::michael_list::make_traits<
co::less< less >,
co::allocator< memory::MichaelAllocator<int> >
>::type
- > MichaelList_HRC_less_michaelAlloc;
-
- typedef cc::MichaelKVList< cds::gc::PTB, Key, Value,
- typename cc::michael_list::make_traits<
- co::compare< compare >
- >::type
- > MichaelList_PTB_cmp_stdAlloc;
-
- typedef cc::MichaelKVList< cds::gc::PTB, Key, Value,
- typename cc::michael_list::make_traits<
- co::compare< compare >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > MichaelList_PTB_cmp_stdAlloc_seqcst;
-
- typedef cc::MichaelKVList< cds::gc::PTB, Key, Value,
- typename cc::michael_list::make_traits<
- co::compare< compare >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelList_PTB_cmp_michaelAlloc;
-
- typedef cc::MichaelKVList< cds::gc::PTB, Key, Value,
- typename cc::michael_list::make_traits<
- co::less< less >
- >::type
- > MichaelList_PTB_less_stdAlloc;
-
- typedef cc::MichaelKVList< cds::gc::PTB, Key, Value,
- typename cc::michael_list::make_traits<
- co::less< less >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > MichaelList_PTB_less_stdAlloc_seqcst;
-
- typedef cc::MichaelKVList< cds::gc::PTB, Key, Value,
- typename cc::michael_list::make_traits<
- co::less< less >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelList_PTB_less_michaelAlloc;
+ > MichaelList_DHP_less_michaelAlloc;
// RCU
typedef cc::MichaelKVList< rcu_gpi, Key, Value,
>::type
> MichaelMap_HP_less_michaelAlloc;
- typedef cc::MichaelHashMap< cds::gc::HRC, MichaelList_HRC_cmp_stdAlloc,
+ typedef cc::MichaelHashMap< cds::gc::DHP, MichaelList_DHP_cmp_stdAlloc,
typename cc::michael_map::make_traits<
co::hash< hash >
>::type
- > MichaelMap_HRC_cmp_stdAlloc;
+ > MichaelMap_DHP_cmp_stdAlloc;
- typedef cc::MichaelHashMap< cds::gc::HRC, MichaelList_HRC_cmp_stdAlloc_seqcst,
+ typedef cc::MichaelHashMap< cds::gc::DHP, MichaelList_DHP_cmp_stdAlloc_seqcst,
typename cc::michael_map::make_traits<
co::hash< hash >
>::type
- > MichaelMap_HRC_cmp_stdAlloc_seqcst;
+ > MichaelMap_DHP_cmp_stdAlloc_seqcst;
- typedef cc::MichaelHashMap< cds::gc::HRC, MichaelList_HRC_cmp_michaelAlloc,
+ typedef cc::MichaelHashMap< cds::gc::DHP, MichaelList_DHP_cmp_michaelAlloc,
typename cc::michael_map::make_traits<
co::hash< hash >,
co::allocator< memory::MichaelAllocator<int> >
>::type
- > MichaelMap_HRC_cmp_michaelAlloc;
+ > MichaelMap_DHP_cmp_michaelAlloc;
- typedef cc::MichaelHashMap< cds::gc::HRC, MichaelList_HRC_less_stdAlloc,
+ typedef cc::MichaelHashMap< cds::gc::DHP, MichaelList_DHP_less_stdAlloc,
typename cc::michael_map::make_traits<
co::hash< hash >
>::type
- > MichaelMap_HRC_less_stdAlloc;
+ > MichaelMap_DHP_less_stdAlloc;
- typedef cc::MichaelHashMap< cds::gc::HRC, MichaelList_HRC_less_stdAlloc_seqcst,
+ typedef cc::MichaelHashMap< cds::gc::DHP, MichaelList_DHP_less_stdAlloc_seqcst,
typename cc::michael_map::make_traits<
co::hash< hash >
>::type
- > MichaelMap_HRC_less_stdAlloc_seqcst;
+ > MichaelMap_DHP_less_stdAlloc_seqcst;
- typedef cc::MichaelHashMap< cds::gc::HRC, MichaelList_HRC_less_michaelAlloc,
+ typedef cc::MichaelHashMap< cds::gc::DHP, MichaelList_DHP_less_michaelAlloc,
typename cc::michael_map::make_traits<
co::hash< hash >,
co::allocator< memory::MichaelAllocator<int> >
>::type
- > MichaelMap_HRC_less_michaelAlloc;
-
- typedef cc::MichaelHashMap< cds::gc::PTB, MichaelList_PTB_cmp_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_PTB_cmp_stdAlloc;
-
- typedef cc::MichaelHashMap< cds::gc::PTB, MichaelList_PTB_cmp_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_PTB_cmp_stdAlloc_seqcst;
-
- typedef cc::MichaelHashMap< cds::gc::PTB, MichaelList_PTB_cmp_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelMap_PTB_cmp_michaelAlloc;
-
- typedef cc::MichaelHashMap< cds::gc::PTB, MichaelList_PTB_less_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_PTB_less_stdAlloc;
-
- typedef cc::MichaelHashMap< cds::gc::PTB, MichaelList_PTB_less_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_PTB_less_stdAlloc_seqcst;
-
- typedef cc::MichaelHashMap< cds::gc::PTB, MichaelList_PTB_less_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelMap_PTB_less_michaelAlloc;
+ > MichaelMap_DHP_less_michaelAlloc;
//RCU
typedef cc::MichaelHashMap< rcu_gpi, MichaelList_RCU_GPI_cmp_stdAlloc,
>::type
> LazyList_HP_less_michaelAlloc;
- typedef cc::LazyKVList< cds::gc::HRC, Key, Value,
+ typedef cc::LazyKVList< cds::gc::DHP, Key, Value,
typename cc::lazy_list::make_traits<
co::compare< compare >
>::type
- > LazyList_HRC_cmp_stdAlloc;
+ > LazyList_DHP_cmp_stdAlloc;
- typedef cc::LazyKVList< cds::gc::HRC, 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_HRC_cmp_stdAlloc_seqcst;
+ > LazyList_DHP_cmp_stdAlloc_seqcst;
- typedef cc::LazyKVList< cds::gc::HRC, 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_HRC_cmp_michaelAlloc;
+ > LazyList_DHP_cmp_michaelAlloc;
- typedef cc::LazyKVList< cds::gc::HRC, Key, Value,
+ typedef cc::LazyKVList< cds::gc::DHP, Key, Value,
typename cc::lazy_list::make_traits<
co::less< less >
>::type
- > LazyList_HRC_less_stdAlloc;
+ > LazyList_DHP_less_stdAlloc;
- typedef cc::LazyKVList< cds::gc::HRC, 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_HRC_less_stdAlloc_seqcst;
+ > LazyList_DHP_less_stdAlloc_seqcst;
- typedef cc::LazyKVList< cds::gc::HRC, 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_HRC_less_michaelAlloc;
-
- typedef cc::LazyKVList< cds::gc::PTB, Key, Value,
- typename cc::lazy_list::make_traits<
- co::compare< compare >
- >::type
- > LazyList_PTB_cmp_stdAlloc;
-
- typedef cc::LazyKVList< cds::gc::PTB, Key, Value,
- typename cc::lazy_list::make_traits<
- co::compare< compare >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > LazyList_PTB_cmp_stdAlloc_seqcst;
-
- typedef cc::LazyKVList< cds::gc::PTB, Key, Value,
- typename cc::lazy_list::make_traits<
- co::compare< compare >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > LazyList_PTB_cmp_michaelAlloc;
-
- typedef cc::LazyKVList< cds::gc::PTB, Key, Value,
- typename cc::lazy_list::make_traits<
- co::less< less >
- >::type
- > LazyList_PTB_less_stdAlloc;
-
- typedef cc::LazyKVList< cds::gc::PTB, Key, Value,
- typename cc::lazy_list::make_traits<
- co::less< less >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > LazyList_PTB_less_stdAlloc_seqcst;
-
- typedef cc::LazyKVList< cds::gc::PTB, 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::HRC, LazyList_HRC_cmp_stdAlloc,
+ typedef cc::MichaelHashMap< cds::gc::DHP, LazyList_DHP_cmp_stdAlloc,
typename cc::michael_map::make_traits<
co::hash< hash >
>::type
- > MichaelMap_Lazy_HRC_cmp_stdAlloc;
+ > MichaelMap_Lazy_DHP_cmp_stdAlloc;
- typedef cc::MichaelHashMap< cds::gc::HRC, LazyList_HRC_cmp_stdAlloc_seqcst,
+ typedef cc::MichaelHashMap< cds::gc::DHP, LazyList_DHP_cmp_stdAlloc_seqcst,
typename cc::michael_map::make_traits<
co::hash< hash >
>::type
- > MichaelMap_Lazy_HRC_cmp_stdAlloc_seqcst;
+ > MichaelMap_Lazy_DHP_cmp_stdAlloc_seqcst;
- typedef cc::MichaelHashMap< cds::gc::HRC, LazyList_HRC_cmp_michaelAlloc,
+ typedef cc::MichaelHashMap< cds::gc::DHP, LazyList_DHP_cmp_michaelAlloc,
typename cc::michael_map::make_traits<
co::hash< hash >,
co::allocator< memory::MichaelAllocator<int> >
>::type
- > MichaelMap_Lazy_HRC_cmp_michaelAlloc;
+ > MichaelMap_Lazy_DHP_cmp_michaelAlloc;
- typedef cc::MichaelHashMap< cds::gc::HRC, LazyList_HRC_less_stdAlloc,
+ typedef cc::MichaelHashMap< cds::gc::DHP, LazyList_DHP_less_stdAlloc,
typename cc::michael_map::make_traits<
co::hash< hash >
>::type
- > MichaelMap_Lazy_HRC_less_stdAlloc;
+ > MichaelMap_Lazy_DHP_less_stdAlloc;
- typedef cc::MichaelHashMap< cds::gc::HRC, LazyList_HRC_less_stdAlloc_seqcst,
+ typedef cc::MichaelHashMap< cds::gc::DHP, LazyList_DHP_less_stdAlloc_seqcst,
typename cc::michael_map::make_traits<
co::hash< hash >
>::type
- > MichaelMap_Lazy_HRC_less_stdAlloc_seqcst;
+ > MichaelMap_Lazy_DHP_less_stdAlloc_seqcst;
- typedef cc::MichaelHashMap< cds::gc::HRC, LazyList_HRC_less_michaelAlloc,
+ typedef cc::MichaelHashMap< cds::gc::DHP, LazyList_DHP_less_michaelAlloc,
typename cc::michael_map::make_traits<
co::hash< hash >,
co::allocator< memory::MichaelAllocator<int> >
>::type
- > MichaelMap_Lazy_HRC_less_michaelAlloc;
-
- typedef cc::MichaelHashMap< cds::gc::PTB, LazyList_PTB_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,
- 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,
- 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,
- 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,
- 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,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelMap_Lazy_PTB_less_michaelAlloc;
+ > MichaelMap_Lazy_DHP_less_michaelAlloc;
// RCU
typedef cc::MichaelHashMap< rcu_gpi, LazyList_RCU_GPI_cmp_stdAlloc,
{};
typedef cc::SplitListMap< cds::gc::HP, Key, Value, traits_SplitList_Michael_HP_st_less_seqcst > SplitList_Michael_HP_st_less_seqcst;
- // HRC
- typedef cc::SplitListMap< cds::gc::HRC, Key, Value,
+ // DHP
+ typedef cc::SplitListMap< cds::gc::DHP, Key, Value,
typename cc::split_list::make_traits<
cc::split_list::ordered_list<cc::michael_list_tag>
,co::hash< hash >
>::type
>
>::type
- > SplitList_Michael_HRC_dyn_cmp;
+ > SplitList_Michael_DHP_dyn_cmp;
- typedef cc::SplitListMap< cds::gc::HRC, Key, Value,
+ typedef cc::SplitListMap< cds::gc::DHP, Key, Value,
typename cc::split_list::make_traits<
cc::split_list::ordered_list<cc::michael_list_tag>
,co::hash< hash >
>::type
>
>::type
- > SplitList_Michael_HRC_dyn_cmp_seqcst;
+ > SplitList_Michael_DHP_dyn_cmp_seqcst;
- typedef cc::SplitListMap< cds::gc::HRC, Key, Value,
+ typedef cc::SplitListMap< cds::gc::DHP, Key, Value,
typename cc::split_list::make_traits<
cc::split_list::ordered_list<cc::michael_list_tag>
,cc::split_list::dynamic_bucket_table< false >
>::type
>
>::type
- > SplitList_Michael_HRC_st_cmp;
+ > SplitList_Michael_DHP_st_cmp;
- typedef cc::SplitListMap< cds::gc::HRC, Key, Value,
+ typedef cc::SplitListMap< cds::gc::DHP, Key, Value,
typename cc::split_list::make_traits<
cc::split_list::ordered_list<cc::michael_list_tag>
,co::hash< hash >
>::type
>
>::type
- > SplitList_Michael_HRC_st_cmp_seqcst;
+ > SplitList_Michael_DHP_st_cmp_seqcst;
- // HRC + less
- typedef cc::SplitListMap< cds::gc::HRC, Key, Value,
+ // DHP + less
+ typedef cc::SplitListMap< cds::gc::DHP, Key, Value,
typename cc::split_list::make_traits<
cc::split_list::ordered_list<cc::michael_list_tag>
,co::hash< hash >
>::type
>
>::type
- > SplitList_Michael_HRC_dyn_less;
+ > SplitList_Michael_DHP_dyn_less;
- typedef cc::SplitListMap< cds::gc::HRC, Key, Value,
+ typedef cc::SplitListMap< cds::gc::DHP, Key, Value,
typename cc::split_list::make_traits<
cc::split_list::ordered_list<cc::michael_list_tag>
,co::hash< hash >
>::type
>
>::type
- > SplitList_Michael_HRC_dyn_less_seqcst;
+ > SplitList_Michael_DHP_dyn_less_seqcst;
- typedef cc::SplitListMap< cds::gc::HRC, Key, Value,
+ typedef cc::SplitListMap< cds::gc::DHP, Key, Value,
typename cc::split_list::make_traits<
cc::split_list::ordered_list<cc::michael_list_tag>
,cc::split_list::dynamic_bucket_table< false >
>::type
>
>::type
- > SplitList_Michael_HRC_st_less;
-
- typedef cc::SplitListMap< cds::gc::HRC, Key, Value,
- typename cc::split_list::make_traits<
- cc::split_list::ordered_list<cc::michael_list_tag>
- ,co::hash< hash >
- ,cc::split_list::dynamic_bucket_table< false >
- ,co::memory_model< co::v::sequential_consistent >
- ,cc::split_list::ordered_list_traits<
- typename cc::michael_list::make_traits<
- co::less< less >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- >
- >::type
- > SplitList_Michael_HRC_st_less_seqcst;
-
- // PTB
- typedef cc::SplitListMap< cds::gc::PTB, Key, Value,
- typename cc::split_list::make_traits<
- cc::split_list::ordered_list<cc::michael_list_tag>
- ,co::hash< hash >
- ,cc::split_list::ordered_list_traits<
- typename cc::michael_list::make_traits<
- co::compare< compare >
- >::type
- >
- >::type
- > SplitList_Michael_PTB_dyn_cmp;
-
- typedef cc::SplitListMap< cds::gc::PTB, Key, Value,
- typename cc::split_list::make_traits<
- cc::split_list::ordered_list<cc::michael_list_tag>
- ,co::hash< hash >
- ,co::memory_model< co::v::sequential_consistent >
- ,cc::split_list::ordered_list_traits<
- typename cc::michael_list::make_traits<
- co::compare< compare >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- >
- >::type
- > SplitList_Michael_PTB_dyn_cmp_seqcst;
+ > SplitList_Michael_DHP_st_less;
- typedef cc::SplitListMap< cds::gc::PTB, Key, Value,
- typename cc::split_list::make_traits<
- cc::split_list::ordered_list<cc::michael_list_tag>
- ,cc::split_list::dynamic_bucket_table< false >
- ,co::hash< hash >
- ,cc::split_list::ordered_list_traits<
- typename cc::michael_list::make_traits<
- co::compare< compare >
- >::type
- >
- >::type
- > SplitList_Michael_PTB_st_cmp;
-
- typedef cc::SplitListMap< cds::gc::PTB, Key, Value,
+ typedef cc::SplitListMap< cds::gc::DHP, Key, Value,
typename cc::split_list::make_traits<
cc::split_list::ordered_list<cc::michael_list_tag>
,co::hash< hash >
,cc::split_list::dynamic_bucket_table< false >
,co::memory_model< co::v::sequential_consistent >
- ,cc::split_list::ordered_list_traits<
- typename cc::michael_list::make_traits<
- co::compare< compare >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- >
- >::type
- > SplitList_Michael_PTB_st_cmp_seqcst;
-
- // PTB + less
- typedef cc::SplitListMap< cds::gc::PTB, Key, Value,
- typename cc::split_list::make_traits<
- cc::split_list::ordered_list<cc::michael_list_tag>
- ,co::hash< hash >
- ,cc::split_list::ordered_list_traits<
- typename cc::michael_list::make_traits<
- co::less< less >
- >::type
- >
- >::type
- > SplitList_Michael_PTB_dyn_less;
-
- typedef cc::SplitListMap< cds::gc::PTB, Key, Value,
- typename cc::split_list::make_traits<
- cc::split_list::ordered_list<cc::michael_list_tag>
- ,co::hash< hash >
- ,co::memory_model< co::v::sequential_consistent >
,cc::split_list::ordered_list_traits<
typename cc::michael_list::make_traits<
co::less< less >
>::type
>
>::type
- > SplitList_Michael_PTB_dyn_less_seqcst;
-
- typedef cc::SplitListMap< cds::gc::PTB, Key, Value,
- typename cc::split_list::make_traits<
- cc::split_list::ordered_list<cc::michael_list_tag>
- ,cc::split_list::dynamic_bucket_table< false >
- ,co::hash< hash >
- ,cc::split_list::ordered_list_traits<
- typename cc::michael_list::make_traits<
- co::less< less >
- >::type
- >
- >::type
- > SplitList_Michael_PTB_st_less;
-
- typedef cc::SplitListMap< cds::gc::PTB, Key, Value,
- typename cc::split_list::make_traits<
- cc::split_list::ordered_list<cc::michael_list_tag>
- ,co::hash< hash >
- ,cc::split_list::dynamic_bucket_table< false >
- ,co::memory_model< co::v::sequential_consistent >
- ,cc::split_list::ordered_list_traits<
- typename cc::michael_list::make_traits<
- co::less< less >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- >
- >::type
- > SplitList_Michael_PTB_st_less_seqcst;
+ > SplitList_Michael_DHP_st_less_seqcst;
// RCU
typedef cc::SplitListMap< rcu_gpi, Key, Value,
>::type
> SplitList_Lazy_HP_st_less_seqcst;
- // HRC
- typedef cc::SplitListMap< cds::gc::HRC, Key, Value,
- typename cc::split_list::make_traits<
- cc::split_list::ordered_list<cc::lazy_list_tag>
- ,co::hash< hash >
- ,cc::split_list::ordered_list_traits<
- typename cc::lazy_list::make_traits<
- co::compare< compare >
- >::type
- >
- >::type
- > SplitList_Lazy_HRC_dyn_cmp;
-
- typedef cc::SplitListMap< cds::gc::HRC, Key, Value,
- typename cc::split_list::make_traits<
- cc::split_list::ordered_list<cc::lazy_list_tag>
- ,co::hash< hash >
- ,co::memory_model< co::v::sequential_consistent >
- ,cc::split_list::ordered_list_traits<
- typename cc::lazy_list::make_traits<
- co::compare< compare >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- >
- >::type
- > SplitList_Lazy_HRC_dyn_cmp_seqcst;
-
- typedef cc::SplitListMap< cds::gc::HRC, Key, Value,
- typename cc::split_list::make_traits<
- cc::split_list::ordered_list<cc::lazy_list_tag>
- ,cc::split_list::dynamic_bucket_table< false >
- ,co::hash< hash >
- ,cc::split_list::ordered_list_traits<
- typename cc::lazy_list::make_traits<
- co::compare< compare >
- >::type
- >
- >::type
- > SplitList_Lazy_HRC_st_cmp;
-
- typedef cc::SplitListMap< cds::gc::HRC, Key, Value,
- typename cc::split_list::make_traits<
- cc::split_list::ordered_list<cc::lazy_list_tag>
- ,co::hash< hash >
- ,cc::split_list::dynamic_bucket_table< false >
- ,co::memory_model< co::v::sequential_consistent >
- ,cc::split_list::ordered_list_traits<
- typename cc::lazy_list::make_traits<
- co::compare< compare >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- >
- >::type
- > SplitList_Lazy_HRC_st_cmp_seqcst;
-
- // HRC + less
- typedef cc::SplitListMap< cds::gc::HRC, Key, Value,
- typename cc::split_list::make_traits<
- cc::split_list::ordered_list<cc::lazy_list_tag>
- ,co::hash< hash >
- ,cc::split_list::ordered_list_traits<
- typename cc::lazy_list::make_traits<
- co::less< less >
- >::type
- >
- >::type
- > SplitList_Lazy_HRC_dyn_less;
-
- typedef cc::SplitListMap< cds::gc::HRC, Key, Value,
- typename cc::split_list::make_traits<
- cc::split_list::ordered_list<cc::lazy_list_tag>
- ,co::hash< hash >
- ,co::memory_model< co::v::sequential_consistent >
- ,cc::split_list::ordered_list_traits<
- typename cc::lazy_list::make_traits<
- co::less< less >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- >
- >::type
- > SplitList_Lazy_HRC_dyn_less_seqcst;
-
- typedef cc::SplitListMap< cds::gc::HRC, Key, Value,
- typename cc::split_list::make_traits<
- cc::split_list::ordered_list<cc::lazy_list_tag>
- ,cc::split_list::dynamic_bucket_table< false >
- ,co::hash< hash >
- ,cc::split_list::ordered_list_traits<
- typename cc::lazy_list::make_traits<
- co::less< less >
- >::type
- >
- >::type
- > SplitList_Lazy_HRC_st_less;
-
- typedef cc::SplitListMap< cds::gc::HRC, Key, Value,
- typename cc::split_list::make_traits<
- cc::split_list::ordered_list<cc::lazy_list_tag>
- ,co::hash< hash >
- ,cc::split_list::dynamic_bucket_table< false >
- ,co::memory_model< co::v::sequential_consistent >
- ,cc::split_list::ordered_list_traits<
- typename cc::lazy_list::make_traits<
- co::less< less >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- >
- >::type
- > SplitList_Lazy_HRC_st_less_seqcst;
-
-
- // PTB
- typedef cc::SplitListMap< cds::gc::PTB, Key, Value,
+ // DHP
+ typedef cc::SplitListMap< cds::gc::DHP, Key, Value,
typename cc::split_list::make_traits<
cc::split_list::ordered_list<cc::lazy_list_tag>
,co::hash< hash >
>::type
>
>::type
- > SplitList_Lazy_PTB_dyn_cmp;
+ > SplitList_Lazy_DHP_dyn_cmp;
- typedef cc::SplitListMap< cds::gc::PTB, Key, Value,
+ typedef cc::SplitListMap< cds::gc::DHP, Key, Value,
typename cc::split_list::make_traits<
cc::split_list::ordered_list<cc::lazy_list_tag>
,co::hash< hash >
>::type
>
>::type
- > SplitList_Lazy_PTB_dyn_cmp_seqcst;
+ > SplitList_Lazy_DHP_dyn_cmp_seqcst;
- typedef cc::SplitListMap< cds::gc::PTB, Key, Value,
+ typedef cc::SplitListMap< cds::gc::DHP, Key, Value,
typename cc::split_list::make_traits<
cc::split_list::ordered_list<cc::lazy_list_tag>
,cc::split_list::dynamic_bucket_table< false >
>::type
>
>::type
- > SplitList_Lazy_PTB_st_cmp;
+ > SplitList_Lazy_DHP_st_cmp;
- typedef cc::SplitListMap< cds::gc::PTB, Key, Value,
+ typedef cc::SplitListMap< cds::gc::DHP, Key, Value,
typename cc::split_list::make_traits<
cc::split_list::ordered_list<cc::lazy_list_tag>
,co::hash< hash >
>::type
>
>::type
- > SplitList_Lazy_PTB_st_cmp_seqcst;
+ > SplitList_Lazy_DHP_st_cmp_seqcst;
- // PTB + less
- typedef cc::SplitListMap< cds::gc::PTB, Key, Value,
+ // DHP + less
+ typedef cc::SplitListMap< cds::gc::DHP, Key, Value,
typename cc::split_list::make_traits<
cc::split_list::ordered_list<cc::lazy_list_tag>
,co::hash< hash >
>::type
>
>::type
- > SplitList_Lazy_PTB_dyn_less;
+ > SplitList_Lazy_DHP_dyn_less;
- typedef cc::SplitListMap< cds::gc::PTB, Key, Value,
+ typedef cc::SplitListMap< cds::gc::DHP, Key, Value,
typename cc::split_list::make_traits<
cc::split_list::ordered_list<cc::lazy_list_tag>
,co::hash< hash >
>::type
>
>::type
- > SplitList_Lazy_PTB_dyn_less_seqcst;
+ > SplitList_Lazy_DHP_dyn_less_seqcst;
- typedef cc::SplitListMap< cds::gc::PTB, Key, Value,
+ typedef cc::SplitListMap< cds::gc::DHP, Key, Value,
typename cc::split_list::make_traits<
cc::split_list::ordered_list<cc::lazy_list_tag>
,cc::split_list::dynamic_bucket_table< false >
>::type
>
>::type
- > SplitList_Lazy_PTB_st_less;
+ > SplitList_Lazy_DHP_st_less;
- typedef cc::SplitListMap< cds::gc::PTB, Key, Value,
+ typedef cc::SplitListMap< cds::gc::DHP, Key, Value,
typename cc::split_list::make_traits<
cc::split_list::ordered_list<cc::lazy_list_tag>
,co::hash< hash >
>::type
>
>::type
- > SplitList_Lazy_PTB_st_less_seqcst;
+ > SplitList_Lazy_DHP_st_less_seqcst;
// RCU
typedef cc::SplitListMap< rcu_gpi, Key, Value,
// StripedHashMap
// for sequential containers
- template <class BucketEntry, CDS_DECL_OPTIONS7>
+ template <class BucketEntry, typename... Options>
class StripedHashMap_seq:
public cc::StripedMap< BucketEntry,
co::mutex_policy< cc::striped_set::striping<> >
,co::resizing_policy<cc::striped_set::load_factor_resizing<0> >
- , CDS_OPTIONS7
+ , Options...
>
{
typedef cc::StripedMap< BucketEntry,
co::mutex_policy< cc::striped_set::striping<> >
,co::resizing_policy<cc::striped_set::load_factor_resizing<0> >
- , CDS_OPTIONS7
+ , Options...
> base_class;
typedef typename base_class::resizing_policy resizing_policy_t;
};
// for non-sequential ordered containers
- template <class BucketEntry, CDS_DECL_OPTIONS7>
+ template <class BucketEntry, typename... Options>
class StripedHashMap_ord:
public cc::StripedMap< BucketEntry,
co::resizing_policy<cc::striped_set::load_factor_resizing<0> >
,co::mutex_policy< cc::striped_set::striping<> >
- , CDS_OPTIONS7
+ , Options...
>
{
typedef cc::StripedMap< BucketEntry,
co::resizing_policy<cc::striped_set::load_factor_resizing<0> >
,co::mutex_policy< cc::striped_set::striping<> >
- , CDS_OPTIONS7
+ , Options...
> base_class;
typedef typename base_class::resizing_policy resizing_policy_t;
, co::less< less >
> StripedMap_list;
-#if (CDS_COMPILER == CDS_COMPILER_MSVC || CDS_COMPILER == CDS_COMPILER_INTEL) && _MSC_VER < 1600
+#if (CDS_COMPILER == CDS_COMPILER_MSVC || (CDS_COMPILER == CDS_COMPILER_INTEL && CDS_OS_INTERFACE == CDS_OSI_WINDOWS)) && _MSC_VER < 1600
typedef StripedHashMap_ord<
stdext::hash_map< Key, Value, stdext::hash_compare<Key, less > >
, co::hash< hash2 >
// RefinableHashMap
// for sequential containers
- template <class BucketEntry, CDS_DECL_OPTIONS7>
+ template <class BucketEntry, typename... Options>
class RefinableHashMap_seq:
public cc::StripedMap< BucketEntry,
co::resizing_policy<cc::striped_set::load_factor_resizing<0> >
,co::mutex_policy< cc::striped_set::refinable<> >
- , CDS_OPTIONS7
+ , Options...
>
{
typedef cc::StripedMap< BucketEntry,
co::resizing_policy<cc::striped_set::load_factor_resizing<0> >
,co::mutex_policy< cc::striped_set::refinable<> >
- , CDS_OPTIONS7
+ , Options...
> base_class;
typedef typename base_class::resizing_policy resizing_policy_t;
};
// for non-sequential ordered containers
- template <class BucketEntry, CDS_DECL_OPTIONS7>
+ template <class BucketEntry, typename... Options>
class RefinableHashMap_ord:
public cc::StripedMap< BucketEntry,
co::resizing_policy<cc::striped_set::load_factor_resizing<0> >
,co::mutex_policy< cc::striped_set::refinable<> >
- , CDS_OPTIONS7
+ , Options...
>
{
typedef cc::StripedMap< BucketEntry,
co::resizing_policy<cc::striped_set::load_factor_resizing<0> >
,co::mutex_policy< cc::striped_set::refinable<> >
- , CDS_OPTIONS7
+ , Options...
> base_class;
typedef typename base_class::resizing_policy resizing_policy_t;
, co::hash< hash2 >
> RefinableMap_map;
-#if (CDS_COMPILER == CDS_COMPILER_MSVC || CDS_COMPILER == CDS_COMPILER_INTEL) && _MSC_VER < 1600
+#if (CDS_COMPILER == CDS_COMPILER_MSVC || (CDS_COMPILER == CDS_COMPILER_INTEL && CDS_OS_INTERFACE == CDS_OSI_WINDOWS)) && _MSC_VER < 1600
typedef RefinableHashMap_ord<
stdext::hash_map< Key, Value, stdext::hash_compare<Key, less > >
, co::hash< hash2 >
typedef cc::SkipListMap< cds::gc::HP, Key, Value, traits_SkipListMap_hp_cmp_xorshift_stat > SkipListMap_hp_cmp_xorshift_stat;
// ***************************************************************************
- // SkipListMap - HRC
-
- class traits_SkipListMap_hrc_less_pascal: public cc::skip_list::make_traits <
- co::less< less >
- ,cc::skip_list::random_level_generator< cc::skip_list::turbo_pascal >
- ,co::item_counter< cds::atomicity::item_counter >
- >::type
- {};
- typedef cc::SkipListMap< cds::gc::HRC, Key, Value, traits_SkipListMap_hrc_less_pascal > SkipListMap_hrc_less_pascal;
-
- class traits_SkipListMap_hrc_less_pascal_seqcst: public cc::skip_list::make_traits <
- co::less< less >
- ,cc::skip_list::random_level_generator< cc::skip_list::turbo_pascal >
- ,co::memory_model< co::v::sequential_consistent >
- ,co::item_counter< cds::atomicity::item_counter >
- >::type
- {};
- typedef cc::SkipListMap< cds::gc::HRC, Key, Value, traits_SkipListMap_hrc_less_pascal_seqcst > SkipListMap_hrc_less_pascal_seqcst;
-
- class traits_SkipListMap_hrc_less_pascal_stat: public cc::skip_list::make_traits <
- co::less< less >
- ,cc::skip_list::random_level_generator< cc::skip_list::turbo_pascal >
- ,co::stat< cc::skip_list::stat<> >
- ,co::item_counter< cds::atomicity::item_counter >
- >::type
- {};
- typedef cc::SkipListMap< cds::gc::HRC, Key, Value, traits_SkipListMap_hrc_less_pascal_stat > SkipListMap_hrc_less_pascal_stat;
-
- class traits_SkipListMap_hrc_cmp_pascal: public cc::skip_list::make_traits <
- co::compare< compare >
- ,cc::skip_list::random_level_generator< cc::skip_list::turbo_pascal >
- ,co::item_counter< cds::atomicity::item_counter >
- >::type
- {};
- typedef cc::SkipListMap< cds::gc::HRC, Key, Value, traits_SkipListMap_hrc_cmp_pascal > SkipListMap_hrc_cmp_pascal;
-
- class traits_SkipListMap_hrc_cmp_pascal_stat: public cc::skip_list::make_traits <
- co::compare< compare >
- ,cc::skip_list::random_level_generator< cc::skip_list::turbo_pascal >
- ,co::stat< cc::skip_list::stat<> >
- ,co::item_counter< cds::atomicity::item_counter >
- >::type
- {};
- typedef cc::SkipListMap< cds::gc::HRC, Key, Value, traits_SkipListMap_hrc_cmp_pascal_stat > SkipListMap_hrc_cmp_pascal_stat;
-
- class traits_SkipListMap_hrc_less_xorshift: public cc::skip_list::make_traits <
- co::less< less >
- ,cc::skip_list::random_level_generator< cc::skip_list::xorshift >
- ,co::item_counter< cds::atomicity::item_counter >
- >::type
- {};
- typedef cc::SkipListMap< cds::gc::HRC, Key, Value, traits_SkipListMap_hrc_less_xorshift > SkipListMap_hrc_less_xorshift;
-
- class traits_SkipListMap_hrc_less_xorshift_stat: public cc::skip_list::make_traits <
- co::less< less >
- ,cc::skip_list::random_level_generator< cc::skip_list::xorshift >
- ,co::stat< cc::skip_list::stat<> >
- ,co::item_counter< cds::atomicity::item_counter >
- >::type
- {};
- typedef cc::SkipListMap< cds::gc::HRC, Key, Value, traits_SkipListMap_hrc_less_xorshift_stat > SkipListMap_hrc_less_xorshift_stat;
-
- class traits_SkipListMap_hrc_cmp_xorshift: public cc::skip_list::make_traits <
- co::compare< compare >
- ,cc::skip_list::random_level_generator< cc::skip_list::xorshift >
- ,co::item_counter< cds::atomicity::item_counter >
- >::type
- {};
- typedef cc::SkipListMap< cds::gc::HRC, Key, Value, traits_SkipListMap_hrc_cmp_xorshift > SkipListMap_hrc_cmp_xorshift;
-
- class traits_SkipListMap_hrc_cmp_xorshift_stat: public cc::skip_list::make_traits <
- co::compare< compare >
- ,cc::skip_list::random_level_generator< cc::skip_list::xorshift >
- ,co::stat< cc::skip_list::stat<> >
- ,co::item_counter< cds::atomicity::item_counter >
- >::type
- {};
- typedef cc::SkipListMap< cds::gc::HRC, Key, Value, traits_SkipListMap_hrc_cmp_xorshift_stat > SkipListMap_hrc_cmp_xorshift_stat;
-
- // ***************************************************************************
- // SkipListMap - PTB
+ // SkipListMap - DHP
class traits_SkipListMap_ptb_less_pascal: public cc::skip_list::make_traits <
co::less< less >
,cc::skip_list::random_level_generator< cc::skip_list::turbo_pascal >
>::type
{};
- typedef cc::SkipListMap< cds::gc::PTB, Key, Value, traits_SkipListMap_ptb_less_pascal > SkipListMap_ptb_less_pascal;
+ typedef cc::SkipListMap< cds::gc::DHP, Key, Value, traits_SkipListMap_ptb_less_pascal > SkipListMap_ptb_less_pascal;
class traits_SkipListMap_ptb_less_pascal_seqcst: public cc::skip_list::make_traits <
co::less< less >
,co::item_counter< cds::atomicity::item_counter >
>::type
{};
- typedef cc::SkipListMap< cds::gc::PTB, Key, Value, traits_SkipListMap_ptb_less_pascal_seqcst > SkipListMap_ptb_less_pascal_seqcst;
+ typedef cc::SkipListMap< cds::gc::DHP, Key, Value, traits_SkipListMap_ptb_less_pascal_seqcst > SkipListMap_ptb_less_pascal_seqcst;
class traits_SkipListMap_ptb_less_pascal_stat: public cc::skip_list::make_traits <
co::less< less >
,co::item_counter< cds::atomicity::item_counter >
>::type
{};
- typedef cc::SkipListMap< cds::gc::PTB, Key, Value, traits_SkipListMap_ptb_less_pascal_stat > SkipListMap_ptb_less_pascal_stat;
+ typedef cc::SkipListMap< cds::gc::DHP, Key, Value, traits_SkipListMap_ptb_less_pascal_stat > SkipListMap_ptb_less_pascal_stat;
class traits_SkipListMap_ptb_cmp_pascal: public cc::skip_list::make_traits <
co::compare< compare >
,cc::skip_list::random_level_generator< cc::skip_list::turbo_pascal >
>::type
{};
- typedef cc::SkipListMap< cds::gc::PTB, Key, Value, traits_SkipListMap_ptb_cmp_pascal > SkipListMap_ptb_cmp_pascal;
+ typedef cc::SkipListMap< cds::gc::DHP, Key, Value, traits_SkipListMap_ptb_cmp_pascal > SkipListMap_ptb_cmp_pascal;
class traits_SkipListMap_ptb_cmp_pascal_stat: public cc::skip_list::make_traits <
co::compare< compare >
,co::stat< cc::skip_list::stat<> >
>::type
{};
- typedef cc::SkipListMap< cds::gc::PTB, Key, Value, traits_SkipListMap_ptb_cmp_pascal_stat > SkipListMap_ptb_cmp_pascal_stat;
+ typedef cc::SkipListMap< cds::gc::DHP, Key, Value, traits_SkipListMap_ptb_cmp_pascal_stat > SkipListMap_ptb_cmp_pascal_stat;
class traits_SkipListMap_ptb_less_xorshift: public cc::skip_list::make_traits <
co::less< less >
,co::item_counter< cds::atomicity::item_counter >
>::type
{};
- typedef cc::SkipListMap< cds::gc::PTB, Key, Value, traits_SkipListMap_ptb_less_xorshift > SkipListMap_ptb_less_xorshift;
+ typedef cc::SkipListMap< cds::gc::DHP, Key, Value, traits_SkipListMap_ptb_less_xorshift > SkipListMap_ptb_less_xorshift;
class traits_SkipListMap_ptb_less_xorshift_stat: public cc::skip_list::make_traits <
co::less< less >
,co::item_counter< cds::atomicity::item_counter >
>::type
{};
- typedef cc::SkipListMap< cds::gc::PTB, Key, Value, traits_SkipListMap_ptb_less_xorshift_stat > SkipListMap_ptb_less_xorshift_stat;
+ typedef cc::SkipListMap< cds::gc::DHP, Key, Value, traits_SkipListMap_ptb_less_xorshift_stat > SkipListMap_ptb_less_xorshift_stat;
class traits_SkipListMap_ptb_cmp_xorshift: public cc::skip_list::make_traits <
co::compare< compare >
,cc::skip_list::random_level_generator< cc::skip_list::xorshift >
>::type
{};
- typedef cc::SkipListMap< cds::gc::PTB, Key, Value, traits_SkipListMap_ptb_cmp_xorshift > SkipListMap_ptb_cmp_xorshift;
+ typedef cc::SkipListMap< cds::gc::DHP, Key, Value, traits_SkipListMap_ptb_cmp_xorshift > SkipListMap_ptb_cmp_xorshift;
class traits_SkipListMap_ptb_cmp_xorshift_stat: public cc::skip_list::make_traits <
co::compare< compare >
,co::stat< cc::skip_list::stat<> >
>::type
{};
- typedef cc::SkipListMap< cds::gc::PTB, Key, Value, traits_SkipListMap_ptb_cmp_xorshift_stat > SkipListMap_ptb_cmp_xorshift_stat;
+ typedef cc::SkipListMap< cds::gc::DHP, Key, Value, traits_SkipListMap_ptb_cmp_xorshift_stat > SkipListMap_ptb_cmp_xorshift_stat;
// ***************************************************************************
// SkipListMap< gc::nogc >
,cc::skip_list::random_level_generator< cc::skip_list::turbo_pascal >
>::type
{};
- typedef NogcMapWrapper_dctor<
- cc::SkipListMap< cds::gc::nogc, Key, Value, traits_SkipListMap_nogc_less_pascal >
+ typedef NogcMapWrapper_dctor<
+ cc::SkipListMap< cds::gc::nogc, Key, Value, traits_SkipListMap_nogc_less_pascal >
> SkipListMap_nogc_less_pascal;
class traits_SkipListMap_nogc_less_pascal_seqcst: public cc::skip_list::make_traits <
,co::item_counter< cds::atomicity::item_counter >
>::type
{};
- typedef NogcMapWrapper_dctor<
- cc::SkipListMap< cds::gc::nogc, Key, Value, traits_SkipListMap_nogc_less_pascal_seqcst >
+ typedef NogcMapWrapper_dctor<
+ cc::SkipListMap< cds::gc::nogc, Key, Value, traits_SkipListMap_nogc_less_pascal_seqcst >
> SkipListMap_nogc_less_pascal_seqcst;
class traits_SkipListMap_nogc_less_pascal_stat: public cc::skip_list::make_traits <
,co::item_counter< cds::atomicity::item_counter >
>::type
{};
- typedef NogcMapWrapper_dctor<
- cc::SkipListMap< cds::gc::nogc, Key, Value, traits_SkipListMap_nogc_less_pascal_stat >
+ typedef NogcMapWrapper_dctor<
+ cc::SkipListMap< cds::gc::nogc, Key, Value, traits_SkipListMap_nogc_less_pascal_stat >
> SkipListMap_nogc_less_pascal_stat;
class traits_SkipListMap_nogc_cmp_pascal: public cc::skip_list::make_traits <
>::type
{};
typedef NogcMapWrapper_dctor<
- cc::SkipListMap< cds::gc::nogc, Key, Value, traits_SkipListMap_nogc_cmp_pascal >
+ cc::SkipListMap< cds::gc::nogc, Key, Value, traits_SkipListMap_nogc_cmp_pascal >
> SkipListMap_nogc_cmp_pascal;
class traits_SkipListMap_nogc_cmp_pascal_stat: public cc::skip_list::make_traits <
,co::stat< cc::skip_list::stat<> >
>::type
{};
- typedef NogcMapWrapper_dctor<
- cc::SkipListMap< cds::gc::nogc, Key, Value, traits_SkipListMap_nogc_cmp_pascal_stat >
+ typedef NogcMapWrapper_dctor<
+ cc::SkipListMap< cds::gc::nogc, Key, Value, traits_SkipListMap_nogc_cmp_pascal_stat >
> SkipListMap_nogc_cmp_pascal_stat;
class traits_SkipListMap_nogc_less_xorshift: public cc::skip_list::make_traits <
,co::item_counter< cds::atomicity::item_counter >
>::type
{};
- typedef NogcMapWrapper_dctor<
- cc::SkipListMap< cds::gc::nogc, Key, Value, traits_SkipListMap_nogc_less_xorshift >
+ typedef NogcMapWrapper_dctor<
+ cc::SkipListMap< cds::gc::nogc, Key, Value, traits_SkipListMap_nogc_less_xorshift >
> SkipListMap_nogc_less_xorshift;
class traits_SkipListMap_nogc_less_xorshift_stat: public cc::skip_list::make_traits <
,co::item_counter< cds::atomicity::item_counter >
>::type
{};
- typedef NogcMapWrapper_dctor<
- cc::SkipListMap< cds::gc::nogc, Key, Value, traits_SkipListMap_nogc_less_xorshift_stat >
+ typedef NogcMapWrapper_dctor<
+ cc::SkipListMap< cds::gc::nogc, Key, Value, traits_SkipListMap_nogc_less_xorshift_stat >
> SkipListMap_nogc_less_xorshift_stat;
class traits_SkipListMap_nogc_cmp_xorshift: public cc::skip_list::make_traits <
,cc::skip_list::random_level_generator< cc::skip_list::xorshift >
>::type
{};
- typedef NogcMapWrapper_dctor< cc::SkipListMap<
- cds::gc::nogc, Key, Value, traits_SkipListMap_nogc_cmp_xorshift >
+ typedef NogcMapWrapper_dctor< cc::SkipListMap<
+ cds::gc::nogc, Key, Value, traits_SkipListMap_nogc_cmp_xorshift >
> SkipListMap_nogc_cmp_xorshift;
class traits_SkipListMap_nogc_cmp_xorshift_stat: public cc::skip_list::make_traits <
,co::stat< cc::skip_list::stat<> >
>::type
{};
- typedef NogcMapWrapper_dctor<
- cc::SkipListMap< cds::gc::nogc, Key, Value, traits_SkipListMap_nogc_cmp_xorshift_stat >
+ typedef NogcMapWrapper_dctor<
+ cc::SkipListMap< cds::gc::nogc, Key, Value, traits_SkipListMap_nogc_cmp_xorshift_stat >
> SkipListMap_nogc_cmp_xorshift_stat;
// ***************************************************************************
typedef cc::ellen_bintree::update_desc< leaf_node, internal_node > update_desc;
};
struct ptb_gc {
- typedef cc::ellen_bintree::map_node<cds::gc::PTB, Key, Value> leaf_node;
+ typedef cc::ellen_bintree::map_node<cds::gc::DHP, Key, Value> leaf_node;
typedef cc::ellen_bintree::internal_node< Key, leaf_node > internal_node;
typedef cc::ellen_bintree::update_desc< leaf_node, internal_node > update_desc;
};
typedef cc::EllenBinTreeMap< cds::gc::HP, Key, Value, traits_EllenBinTreeMap_hp_stat > EllenBinTreeMap_hp_stat;
// ***************************************************************************
- // EllenBinTreeMap - PTB
+ // EllenBinTreeMap - DHP
struct traits_EllenBinTreeMap_ptb: public cc::ellen_bintree::make_set_traits<
co::less< less >
,co::item_counter< cds::atomicity::item_counter >
>::type
{};
- typedef cc::EllenBinTreeMap< cds::gc::PTB, Key, Value, traits_EllenBinTreeMap_ptb> EllenBinTreeMap_ptb;
+ typedef cc::EllenBinTreeMap< cds::gc::DHP, Key, Value, traits_EllenBinTreeMap_ptb> EllenBinTreeMap_ptb;
struct traits_EllenBinTreeMap_ptb_stat: public cc::ellen_bintree::make_set_traits<
co::less< less >
,co::item_counter< cds::atomicity::item_counter >
>::type
{};
- typedef cc::EllenBinTreeMap< cds::gc::PTB, Key, Value, traits_EllenBinTreeMap_ptb_stat > EllenBinTreeMap_ptb_stat;
+ typedef cc::EllenBinTreeMap< cds::gc::DHP, Key, Value, traits_EllenBinTreeMap_ptb_stat > EllenBinTreeMap_ptb_stat;
// ***************************************************************************
// EllenBinTreeMap - RCU
}
- template <typename K, typename V, CDS_SPEC_OPTIONS10>
- static inline void print_stat( CuckooStripedMap< K, V, CDS_OPTIONS10 > const& m )
+ template <typename K, typename V, typename... Options>
+ static inline void print_stat( CuckooStripedMap< K, V, Options... > const& m )
{
- typedef CuckooStripedMap< K, V, CDS_OPTIONS10 > map_type;
+ typedef CuckooStripedMap< K, V, Options... > map_type;
print_stat( static_cast<typename map_type::cuckoo_base_class const&>(m) );
}
- template <typename K, typename V, CDS_SPEC_OPTIONS10>
- static inline void print_stat( CuckooRefinableMap< K, V, CDS_OPTIONS10 > const& m )
+ template <typename K, typename V, typename... Options>
+ static inline void print_stat( CuckooRefinableMap< K, V, Options... > const& m )
{
- typedef CuckooRefinableMap< K, V, CDS_OPTIONS10 > map_type;
+ typedef CuckooRefinableMap< K, V, Options... > map_type;
print_stat( static_cast<typename map_type::cuckoo_base_class const&>(m) );
}