#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>
#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>
// ***************************************************************************
// MichaelKVList
- typedef cc::MichaelKVList< cds::gc::HP, Key, Value,
- typename cc::michael_list::make_traits<
+ struct traits_MichaelList_cmp_stdAlloc :
+ public cc::michael_list::make_traits<
co::compare< compare >
>::type
- > MichaelList_HP_cmp_stdAlloc;
-
- typedef cc::MichaelKVList< cds::gc::HP, Key, Value,
- typename cc::michael_list::make_traits<
- co::compare< compare >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > MichaelList_HP_cmp_stdAlloc_seqcst;
-
- typedef cc::MichaelKVList< cds::gc::HP, Key, Value,
- typename cc::michael_list::make_traits<
- co::compare< compare >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelList_HP_cmp_michaelAlloc;
-
- typedef cc::MichaelKVList< cds::gc::HP, Key, Value,
- typename cc::michael_list::make_traits<
- co::less< less >
- >::type
- > MichaelList_HP_less_stdAlloc;
-
- typedef cc::MichaelKVList< cds::gc::HP, Key, Value,
- typename cc::michael_list::make_traits<
- co::less< less >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > MichaelList_HP_less_stdAlloc_seqcst;
-
- typedef cc::MichaelKVList< cds::gc::HP, Key, Value,
- typename cc::michael_list::make_traits<
- co::less< less >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelList_HP_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;
-
- // RCU
- typedef cc::MichaelKVList< rcu_gpi, Key, Value,
- typename cc::michael_list::make_traits<
- co::compare< compare >
- >::type
- > MichaelList_RCU_GPI_cmp_stdAlloc;
-
- typedef cc::MichaelKVList< rcu_gpi, Key, Value,
- typename cc::michael_list::make_traits<
- co::compare< compare >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > MichaelList_RCU_GPI_cmp_stdAlloc_seqcst;
-
- typedef cc::MichaelKVList< rcu_gpi, Key, Value,
- typename cc::michael_list::make_traits<
- co::compare< compare >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelList_RCU_GPI_cmp_michaelAlloc;
-
- typedef cc::MichaelKVList< rcu_gpi, Key, Value,
- typename cc::michael_list::make_traits<
- co::less< less >
- >::type
- > MichaelList_RCU_GPI_less_stdAlloc;
-
- typedef cc::MichaelKVList< rcu_gpi, Key, Value,
- typename cc::michael_list::make_traits<
- co::less< less >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > MichaelList_RCU_GPI_less_stdAlloc_seqcst;
-
- typedef cc::MichaelKVList< rcu_gpi, Key, Value,
- typename cc::michael_list::make_traits<
- co::less< less >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelList_RCU_GPI_less_michaelAlloc;
-
- //
- typedef cc::MichaelKVList< rcu_gpb, Key, Value,
- typename cc::michael_list::make_traits<
- co::compare< compare >
- >::type
- > MichaelList_RCU_GPB_cmp_stdAlloc;
-
- typedef cc::MichaelKVList< rcu_gpb, Key, Value,
- typename cc::michael_list::make_traits<
- co::compare< compare >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > MichaelList_RCU_GPB_cmp_stdAlloc_seqcst;
-
- typedef cc::MichaelKVList< rcu_gpb, Key, Value,
- typename cc::michael_list::make_traits<
- co::compare< compare >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelList_RCU_GPB_cmp_michaelAlloc;
-
- typedef cc::MichaelKVList< rcu_gpb, Key, Value,
- typename cc::michael_list::make_traits<
- co::less< less >
- >::type
- > MichaelList_RCU_GPB_less_stdAlloc;
-
- typedef cc::MichaelKVList< rcu_gpb, Key, Value,
- typename cc::michael_list::make_traits<
- co::less< less >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > MichaelList_RCU_GPB_less_stdAlloc_seqcst;
-
- typedef cc::MichaelKVList< rcu_gpb, Key, Value,
- typename cc::michael_list::make_traits<
- co::less< less >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelList_RCU_GPB_less_michaelAlloc;
-
- //
- typedef cc::MichaelKVList< rcu_gpt, Key, Value,
- typename cc::michael_list::make_traits<
- co::compare< compare >
- >::type
- > MichaelList_RCU_GPT_cmp_stdAlloc;
-
- typedef cc::MichaelKVList< rcu_gpt, Key, Value,
- typename cc::michael_list::make_traits<
- co::compare< compare >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > MichaelList_RCU_GPT_cmp_stdAlloc_seqcst;
-
- typedef cc::MichaelKVList< rcu_gpt, Key, Value,
- typename cc::michael_list::make_traits<
- co::compare< compare >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelList_RCU_GPT_cmp_michaelAlloc;
-
- typedef cc::MichaelKVList< rcu_gpt, Key, Value,
- typename cc::michael_list::make_traits<
- co::less< less >
- >::type
- > MichaelList_RCU_GPT_less_stdAlloc;
-
- typedef cc::MichaelKVList< rcu_gpt, Key, Value,
- typename cc::michael_list::make_traits<
- co::less< less >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > MichaelList_RCU_GPT_less_stdAlloc_seqcst;
-
- typedef cc::MichaelKVList< rcu_gpt, Key, Value,
- typename cc::michael_list::make_traits<
- co::less< less >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelList_RCU_GPT_less_michaelAlloc;
-
+ {};
+ typedef cc::MichaelKVList< cds::gc::HP, Key, Value, traits_MichaelList_cmp_stdAlloc > MichaelList_HP_cmp_stdAlloc;
+ typedef cc::MichaelKVList< cds::gc::DHP, Key, Value, traits_MichaelList_cmp_stdAlloc > MichaelList_DHP_cmp_stdAlloc;
+ typedef cc::MichaelKVList< cds::gc::nogc, Key, Value, traits_MichaelList_cmp_stdAlloc > MichaelList_NOGC_cmp_stdAlloc;
+ typedef cc::MichaelKVList< rcu_gpi, Key, Value, traits_MichaelList_cmp_stdAlloc > MichaelList_RCU_GPI_cmp_stdAlloc;
+ typedef cc::MichaelKVList< rcu_gpb, Key, Value, traits_MichaelList_cmp_stdAlloc > MichaelList_RCU_GPB_cmp_stdAlloc;
+ typedef cc::MichaelKVList< rcu_gpt, Key, Value, traits_MichaelList_cmp_stdAlloc > MichaelList_RCU_GPT_cmp_stdAlloc;
#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
- typedef cc::MichaelKVList< rcu_shb, Key, Value,
- typename cc::michael_list::make_traits<
- co::compare< compare >
- >::type
- > MichaelList_RCU_SHB_cmp_stdAlloc;
-
- typedef cc::MichaelKVList< rcu_shb, Key, Value,
- typename cc::michael_list::make_traits<
- co::compare< compare >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > MichaelList_RCU_SHB_cmp_stdAlloc_seqcst;
-
- typedef cc::MichaelKVList< rcu_shb, Key, Value,
- typename cc::michael_list::make_traits<
- co::compare< compare >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelList_RCU_SHB_cmp_michaelAlloc;
-
- typedef cc::MichaelKVList< rcu_shb, Key, Value,
- typename cc::michael_list::make_traits<
- co::less< less >
- >::type
- > MichaelList_RCU_SHB_less_stdAlloc;
-
- typedef cc::MichaelKVList< rcu_shb, Key, Value,
- typename cc::michael_list::make_traits<
- co::less< less >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > MichaelList_RCU_SHB_less_stdAlloc_seqcst;
-
- typedef cc::MichaelKVList< rcu_shb, Key, Value,
- typename cc::michael_list::make_traits<
- co::less< less >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelList_RCU_SHB_less_michaelAlloc;
-
- //
- typedef cc::MichaelKVList< rcu_sht, Key, Value,
- typename cc::michael_list::make_traits<
- co::compare< compare >
- >::type
- > MichaelList_RCU_SHT_cmp_stdAlloc;
-
- typedef cc::MichaelKVList< rcu_sht, Key, Value,
- typename cc::michael_list::make_traits<
- co::compare< compare >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > MichaelList_RCU_SHT_cmp_stdAlloc_seqcst;
-
- typedef cc::MichaelKVList< rcu_sht, Key, Value,
- typename cc::michael_list::make_traits<
- co::compare< compare >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelList_RCU_SHT_cmp_michaelAlloc;
-
- typedef cc::MichaelKVList< rcu_sht, Key, Value,
- typename cc::michael_list::make_traits<
- co::less< less >
- >::type
- > MichaelList_RCU_SHT_less_stdAlloc;
-
- typedef cc::MichaelKVList< rcu_sht, Key, Value,
- typename cc::michael_list::make_traits<
- co::less< less >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > MichaelList_RCU_SHT_less_stdAlloc_seqcst;
-
- typedef cc::MichaelKVList< rcu_sht, Key, Value,
- typename cc::michael_list::make_traits<
- co::less< less >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelList_RCU_SHT_less_michaelAlloc;
+ typedef cc::MichaelKVList< rcu_shb, Key, Value, traits_MichaelList_cmp_stdAlloc > MichaelList_RCU_SHB_cmp_stdAlloc;
+ typedef cc::MichaelKVList< rcu_sht, Key, Value, traits_MichaelList_cmp_stdAlloc > MichaelList_RCU_SHT_cmp_stdAlloc;
#endif
- // gc::nogc
- typedef cc::MichaelKVList< cds::gc::nogc, Key, Value,
- typename cc::michael_list::make_traits<
- co::compare< compare >
- >::type
- > MichaelList_NOGC_cmp_stdAlloc;
-
- typedef cc::MichaelKVList< cds::gc::nogc, Key, Value,
- typename cc::michael_list::make_traits<
+ struct traits_MichaelList_cmp_stdAlloc_seqcst :
+ public cc::michael_list::make_traits<
co::compare< compare >
,co::memory_model< co::v::sequential_consistent >
>::type
- > MichaelList_NOGC_cmp_stdAlloc_seqcst;
+ {};
+ typedef cc::MichaelKVList< cds::gc::HP, Key, Value, traits_MichaelList_cmp_stdAlloc_seqcst > MichaelList_HP_cmp_stdAlloc_seqcst;
+ typedef cc::MichaelKVList< cds::gc::DHP, Key, Value, traits_MichaelList_cmp_stdAlloc_seqcst > MichaelList_DHP_cmp_stdAlloc_seqcst;
+ typedef cc::MichaelKVList< cds::gc::nogc, Key, Value, traits_MichaelList_cmp_stdAlloc_seqcst > MichaelList_NOGC_cmp_stdAlloc_seqcst;
+ typedef cc::MichaelKVList< rcu_gpi, Key, Value, traits_MichaelList_cmp_stdAlloc_seqcst > MichaelList_RCU_GPI_cmp_stdAlloc_seqcst;
+ typedef cc::MichaelKVList< rcu_gpb, Key, Value, traits_MichaelList_cmp_stdAlloc_seqcst > MichaelList_RCU_GPB_cmp_stdAlloc_seqcst;
+ typedef cc::MichaelKVList< rcu_gpt, Key, Value, traits_MichaelList_cmp_stdAlloc_seqcst > MichaelList_RCU_GPT_cmp_stdAlloc_seqcst;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef cc::MichaelKVList< rcu_shb, Key, Value, traits_MichaelList_cmp_stdAlloc_seqcst > MichaelList_RCU_SHB_cmp_stdAlloc_seqcst;
+ typedef cc::MichaelKVList< rcu_sht, Key, Value, traits_MichaelList_cmp_stdAlloc_seqcst > MichaelList_RCU_SHT_cmp_stdAlloc_seqcst;
+#endif
- typedef cc::MichaelKVList< cds::gc::nogc, Key, Value,
- typename cc::michael_list::make_traits<
+ struct traits_MichaelList_cmp_michaelAlloc :
+ public cc::michael_list::make_traits<
co::compare< compare >,
co::allocator< memory::MichaelAllocator<int> >
>::type
- > MichaelList_NOGC_cmp_michaelAlloc;
+ {};
+ typedef cc::MichaelKVList< cds::gc::HP, Key, Value, traits_MichaelList_cmp_michaelAlloc > MichaelList_HP_cmp_michaelAlloc;
+ typedef cc::MichaelKVList< cds::gc::DHP, Key, Value, traits_MichaelList_cmp_michaelAlloc > MichaelList_DHP_cmp_michaelAlloc;
+ typedef cc::MichaelKVList< cds::gc::nogc, Key, Value, traits_MichaelList_cmp_michaelAlloc > MichaelList_NOGC_cmp_michaelAlloc;
+ typedef cc::MichaelKVList< rcu_gpi, Key, Value, traits_MichaelList_cmp_michaelAlloc > MichaelList_RCU_GPI_cmp_michaelAlloc;
+ typedef cc::MichaelKVList< rcu_gpb, Key, Value, traits_MichaelList_cmp_michaelAlloc > MichaelList_RCU_GPB_cmp_michaelAlloc;
+ typedef cc::MichaelKVList< rcu_gpt, Key, Value, traits_MichaelList_cmp_michaelAlloc > MichaelList_RCU_GPT_cmp_michaelAlloc;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef cc::MichaelKVList< rcu_shb, Key, Value, traits_MichaelList_cmp_michaelAlloc > MichaelList_RCU_SHB_cmp_michaelAlloc;
+ typedef cc::MichaelKVList< rcu_sht, Key, Value, traits_MichaelList_cmp_michaelAlloc > MichaelList_RCU_SHT_cmp_michaelAlloc;
+#endif
- typedef cc::MichaelKVList< cds::gc::nogc, Key, Value,
- typename cc::michael_list::make_traits<
+ struct traits_MichaelList_less_stdAlloc :
+ public cc::michael_list::make_traits<
co::less< less >
>::type
- > MichaelList_NOGC_less_stdAlloc;
+ {};
+ typedef cc::MichaelKVList< cds::gc::HP, Key, Value, traits_MichaelList_less_stdAlloc > MichaelList_HP_less_stdAlloc;
+ typedef cc::MichaelKVList< cds::gc::DHP, Key, Value, traits_MichaelList_less_stdAlloc > MichaelList_DHP_less_stdAlloc;
+ typedef cc::MichaelKVList< cds::gc::nogc, Key, Value, traits_MichaelList_less_stdAlloc > MichaelList_NOGC_less_stdAlloc;
+ typedef cc::MichaelKVList< rcu_gpi, Key, Value, traits_MichaelList_less_stdAlloc > MichaelList_RCU_GPI_less_stdAlloc;
+ typedef cc::MichaelKVList< rcu_gpb, Key, Value, traits_MichaelList_less_stdAlloc > MichaelList_RCU_GPB_less_stdAlloc;
+ typedef cc::MichaelKVList< rcu_gpt, Key, Value, traits_MichaelList_less_stdAlloc > MichaelList_RCU_GPT_less_stdAlloc;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef cc::MichaelKVList< rcu_shb, Key, Value, traits_MichaelList_less_stdAlloc > MichaelList_RCU_SHB_less_stdAlloc;
+ typedef cc::MichaelKVList< rcu_sht, Key, Value, traits_MichaelList_less_stdAlloc > MichaelList_RCU_SHT_less_stdAlloc;
+#endif
- typedef cc::MichaelKVList< cds::gc::nogc, Key, Value,
- typename cc::michael_list::make_traits<
+ struct traits_MichaelList_less_stdAlloc_seqcst :
+ public cc::michael_list::make_traits<
co::less< less >
,co::memory_model< co::v::sequential_consistent >
>::type
- > MichaelList_NOGC_less_stdAlloc_seqcst;
+ {};
+ typedef cc::MichaelKVList< cds::gc::HP, Key, Value, traits_MichaelList_less_stdAlloc_seqcst > MichaelList_HP_less_stdAlloc_seqcst;
+ typedef cc::MichaelKVList< cds::gc::DHP, Key, Value, traits_MichaelList_less_stdAlloc_seqcst > MichaelList_DHP_less_stdAlloc_seqcst;
+ typedef cc::MichaelKVList< cds::gc::nogc, Key, Value, traits_MichaelList_less_stdAlloc_seqcst > MichaelList_NOGC_less_stdAlloc_seqcst;
+ typedef cc::MichaelKVList< rcu_gpi, Key, Value, traits_MichaelList_less_stdAlloc_seqcst > MichaelList_RCU_GPI_less_stdAlloc_seqcst;
+ typedef cc::MichaelKVList< rcu_gpb, Key, Value, traits_MichaelList_less_stdAlloc_seqcst > MichaelList_RCU_GPB_less_stdAlloc_seqcst;
+ typedef cc::MichaelKVList< rcu_gpt, Key, Value, traits_MichaelList_less_stdAlloc_seqcst > MichaelList_RCU_GPT_less_stdAlloc_seqcst;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef cc::MichaelKVList< rcu_shb, Key, Value, traits_MichaelList_less_stdAlloc_seqcst > MichaelList_RCU_SHB_less_stdAlloc_seqcst;
+ typedef cc::MichaelKVList< rcu_sht, Key, Value, traits_MichaelList_less_stdAlloc_seqcst > MichaelList_RCU_SHT_less_stdAlloc_seqcst;
+#endif
- typedef cc::MichaelKVList< cds::gc::nogc, Key, Value,
- typename cc::michael_list::make_traits<
+ struct traits_MichaelList_less_michaelAlloc :
+ public cc::michael_list::make_traits<
co::less< less >,
co::allocator< memory::MichaelAllocator<int> >
>::type
- > MichaelList_NOGC_less_michaelAlloc;
+ {};
+ typedef cc::MichaelKVList< cds::gc::HP, Key, Value, traits_MichaelList_less_michaelAlloc > MichaelList_HP_less_michaelAlloc;
+ typedef cc::MichaelKVList< cds::gc::DHP, Key, Value, traits_MichaelList_less_michaelAlloc > MichaelList_DHP_less_michaelAlloc;
+ typedef cc::MichaelKVList< cds::gc::nogc, Key, Value, traits_MichaelList_less_michaelAlloc > MichaelList_NOGC_less_michaelAlloc;
+ typedef cc::MichaelKVList< rcu_gpi, Key, Value, traits_MichaelList_less_michaelAlloc > MichaelList_RCU_GPI_less_michaelAlloc;
+ typedef cc::MichaelKVList< rcu_gpb, Key, Value, traits_MichaelList_less_michaelAlloc > MichaelList_RCU_GPB_less_michaelAlloc;
+ typedef cc::MichaelKVList< rcu_gpt, Key, Value, traits_MichaelList_less_michaelAlloc > MichaelList_RCU_GPT_less_michaelAlloc;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef cc::MichaelKVList< rcu_shb, Key, Value, traits_MichaelList_less_michaelAlloc > MichaelList_RCU_SHB_less_michaelAlloc;
+ typedef cc::MichaelKVList< rcu_sht, Key, Value, traits_MichaelList_less_michaelAlloc > MichaelList_RCU_SHT_less_michaelAlloc;
+#endif
template <typename Base>
class NogcMapWrapper: public Base
// ***************************************************************************
// MichaelHashMap based on MichaelKVList
- typedef cc::MichaelHashMap< cds::gc::HP, MichaelList_HP_cmp_stdAlloc,
- typename cc::michael_map::make_traits<
+ struct traits_MichaelMap_hash :
+ public cc::michael_map::make_traits<
co::hash< hash >
>::type
- > MichaelMap_HP_cmp_stdAlloc;
+ {};
+ typedef cc::MichaelHashMap< cds::gc::HP, MichaelList_HP_cmp_stdAlloc, traits_MichaelMap_hash > MichaelMap_HP_cmp_stdAlloc;
+ typedef cc::MichaelHashMap< cds::gc::DHP, MichaelList_DHP_cmp_stdAlloc, traits_MichaelMap_hash > MichaelMap_DHP_cmp_stdAlloc;
+ typedef cc::MichaelHashMap< cds::gc::nogc, MichaelList_NOGC_cmp_stdAlloc, traits_MichaelMap_hash > MichaelMap_NOGC_cmp_stdAlloc;
+ typedef cc::MichaelHashMap< rcu_gpi, MichaelList_RCU_GPI_cmp_stdAlloc, traits_MichaelMap_hash > MichaelMap_RCU_GPI_cmp_stdAlloc;
+ typedef cc::MichaelHashMap< rcu_gpb, MichaelList_RCU_GPB_cmp_stdAlloc, traits_MichaelMap_hash > MichaelMap_RCU_GPB_cmp_stdAlloc;
+ typedef cc::MichaelHashMap< rcu_gpt, MichaelList_RCU_GPT_cmp_stdAlloc, traits_MichaelMap_hash > MichaelMap_RCU_GPT_cmp_stdAlloc;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef cc::MichaelHashMap< rcu_shb, MichaelList_RCU_SHB_cmp_stdAlloc, traits_MichaelMap_hash > MichaelMap_RCU_SHB_cmp_stdAlloc;
+ typedef cc::MichaelHashMap< rcu_sht, MichaelList_RCU_SHT_cmp_stdAlloc, traits_MichaelMap_hash > MichaelMap_RCU_SHT_cmp_stdAlloc;
+#endif
- typedef cc::MichaelHashMap< cds::gc::HP, MichaelList_HP_cmp_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_HP_cmp_stdAlloc_seqcst;
+ typedef cc::MichaelHashMap< cds::gc::HP, MichaelList_HP_less_stdAlloc, traits_MichaelMap_hash > MichaelMap_HP_less_stdAlloc;
+ typedef cc::MichaelHashMap< cds::gc::DHP, MichaelList_DHP_less_stdAlloc, traits_MichaelMap_hash > MichaelMap_DHP_less_stdAlloc;
+ typedef cc::MichaelHashMap< cds::gc::nogc, MichaelList_NOGC_less_stdAlloc, traits_MichaelMap_hash > MichaelMap_NOGC_less_stdAlloc;
+ typedef cc::MichaelHashMap< rcu_gpi, MichaelList_RCU_GPI_less_stdAlloc, traits_MichaelMap_hash > MichaelMap_RCU_GPI_less_stdAlloc;
+ typedef cc::MichaelHashMap< rcu_gpb, MichaelList_RCU_GPB_less_stdAlloc, traits_MichaelMap_hash > MichaelMap_RCU_GPB_less_stdAlloc;
+ typedef cc::MichaelHashMap< rcu_gpt, MichaelList_RCU_GPT_less_stdAlloc, traits_MichaelMap_hash > MichaelMap_RCU_GPT_less_stdAlloc;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef cc::MichaelHashMap< rcu_shb, MichaelList_RCU_SHB_less_stdAlloc, traits_MichaelMap_hash > MichaelMap_RCU_SHB_less_stdAlloc;
+ typedef cc::MichaelHashMap< rcu_sht, MichaelList_RCU_SHT_less_stdAlloc, traits_MichaelMap_hash > MichaelMap_RCU_SHT_less_stdAlloc;
+#endif
- typedef cc::MichaelHashMap< cds::gc::HP, MichaelList_HP_cmp_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelMap_HP_cmp_michaelAlloc;
+ typedef cc::MichaelHashMap< cds::gc::HP, MichaelList_HP_cmp_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_HP_cmp_stdAlloc_seqcst;
+ typedef cc::MichaelHashMap< cds::gc::DHP, MichaelList_DHP_cmp_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_DHP_cmp_stdAlloc_seqcst;
+ typedef cc::MichaelHashMap< cds::gc::nogc, MichaelList_NOGC_cmp_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_NOGC_cmp_stdAlloc_seqcst;
+ typedef cc::MichaelHashMap< rcu_gpi, MichaelList_RCU_GPI_cmp_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_RCU_GPI_cmp_stdAlloc_seqcst;
+ typedef cc::MichaelHashMap< rcu_gpb, MichaelList_RCU_GPB_cmp_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_RCU_GPB_cmp_stdAlloc_seqcst;
+ typedef cc::MichaelHashMap< rcu_gpt, MichaelList_RCU_GPT_cmp_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_RCU_GPT_cmp_stdAlloc_seqcst;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef cc::MichaelHashMap< rcu_shb, MichaelList_RCU_SHB_cmp_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_RCU_SHB_cmp_stdAlloc_seqcst;
+ typedef cc::MichaelHashMap< rcu_sht, MichaelList_RCU_SHT_cmp_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_RCU_SHT_cmp_stdAlloc_seqcst;
+#endif
- typedef cc::MichaelHashMap< cds::gc::HP, MichaelList_HP_less_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_HP_less_stdAlloc;
+ typedef cc::MichaelHashMap< cds::gc::HP, MichaelList_HP_less_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_HP_less_stdAlloc_seqcst;
+ typedef cc::MichaelHashMap< cds::gc::DHP, MichaelList_DHP_less_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_DHP_less_stdAlloc_seqcst;
+ typedef cc::MichaelHashMap< cds::gc::nogc, MichaelList_NOGC_less_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_NOGC_less_stdAlloc_seqcst;
+ typedef cc::MichaelHashMap< rcu_gpi, MichaelList_RCU_GPI_less_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_RCU_GPI_less_stdAlloc_seqcst;
+ typedef cc::MichaelHashMap< rcu_gpb, MichaelList_RCU_GPB_less_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_RCU_GPB_less_stdAlloc_seqcst;
+ typedef cc::MichaelHashMap< rcu_gpt, MichaelList_RCU_GPT_less_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_RCU_GPT_less_stdAlloc_seqcst;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef cc::MichaelHashMap< rcu_shb, MichaelList_RCU_SHB_less_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_RCU_SHB_less_stdAlloc_seqcst;
+ typedef cc::MichaelHashMap< rcu_sht, MichaelList_RCU_SHT_less_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_RCU_SHT_less_stdAlloc_seqcst;
+#endif
- typedef cc::MichaelHashMap< cds::gc::HP, MichaelList_HP_less_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_HP_less_stdAlloc_seqcst;
+ struct traits_MichaelSet_michaelAlloc :
+ public traits_MichaelMap_hash
+ {
+ typedef cds::memory::MichaelAllocator<int> allocator;
+ };
+ typedef cc::MichaelHashMap< cds::gc::HP, MichaelList_HP_cmp_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_HP_cmp_michaelAlloc;
+ typedef cc::MichaelHashMap< cds::gc::DHP, MichaelList_DHP_cmp_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_DHP_cmp_michaelAlloc;
+ typedef cc::MichaelHashMap< cds::gc::nogc, MichaelList_NOGC_cmp_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_NOGC_cmp_michaelAlloc;
+ typedef cc::MichaelHashMap< rcu_gpi, MichaelList_RCU_GPI_cmp_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_RCU_GPI_cmp_michaelAlloc;
+ typedef cc::MichaelHashMap< rcu_gpb, MichaelList_RCU_GPB_cmp_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_RCU_GPB_cmp_michaelAlloc;
+ typedef cc::MichaelHashMap< rcu_gpt, MichaelList_RCU_GPT_cmp_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_RCU_GPT_cmp_michaelAlloc;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef cc::MichaelHashMap< rcu_shb, MichaelList_RCU_SHB_cmp_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_RCU_SHB_cmp_michaelAlloc;
+ typedef cc::MichaelHashMap< rcu_sht, MichaelList_RCU_SHT_cmp_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_RCU_SHT_cmp_michaelAlloc;
+#endif
+ typedef cc::MichaelHashMap< cds::gc::HP, MichaelList_HP_less_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_HP_less_michaelAlloc;
+ typedef cc::MichaelHashMap< cds::gc::DHP, MichaelList_DHP_less_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_DHP_less_michaelAlloc;
+ typedef cc::MichaelHashMap< cds::gc::nogc, MichaelList_NOGC_less_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_NOGC_less_michaelAlloc;
+ typedef cc::MichaelHashMap< rcu_gpi, MichaelList_RCU_GPI_less_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_RCU_GPI_less_michaelAlloc;
+ typedef cc::MichaelHashMap< rcu_gpb, MichaelList_RCU_GPB_less_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_RCU_GPB_less_michaelAlloc;
+ typedef cc::MichaelHashMap< rcu_gpt, MichaelList_RCU_GPT_less_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_RCU_GPT_less_michaelAlloc;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef cc::MichaelHashMap< rcu_shb, MichaelList_RCU_SHB_less_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_RCU_SHB_less_michaelAlloc;
+ typedef cc::MichaelHashMap< rcu_sht, MichaelList_RCU_SHT_less_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_RCU_SHT_less_michaelAlloc;
+#endif
- typedef cc::MichaelHashMap< cds::gc::HP, MichaelList_HP_less_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelMap_HP_less_michaelAlloc;
+ // ***************************************************************************
+ // LazyKVList
- typedef cc::MichaelHashMap< cds::gc::PTB, MichaelList_PTB_cmp_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
+ struct traits_LazyList_cmp_stdAlloc :
+ public cc::lazy_list::make_traits<
+ co::compare< compare >
>::type
- > MichaelMap_PTB_cmp_stdAlloc;
+ {};
+ typedef cc::LazyKVList< cds::gc::HP, Key, Value, traits_LazyList_cmp_stdAlloc > LazyList_HP_cmp_stdAlloc;
+ typedef cc::LazyKVList< cds::gc::DHP, Key, Value, traits_LazyList_cmp_stdAlloc > LazyList_DHP_cmp_stdAlloc;
+ typedef cc::LazyKVList< cds::gc::nogc, Key, Value, traits_LazyList_cmp_stdAlloc > LazyList_NOGC_cmp_stdAlloc;
+ typedef cc::LazyKVList< rcu_gpi, Key, Value, traits_LazyList_cmp_stdAlloc > LazyList_RCU_GPI_cmp_stdAlloc;
+ typedef cc::LazyKVList< rcu_gpb, Key, Value, traits_LazyList_cmp_stdAlloc > LazyList_RCU_GPB_cmp_stdAlloc;
+ typedef cc::LazyKVList< rcu_gpt, Key, Value, traits_LazyList_cmp_stdAlloc > LazyList_RCU_GPT_cmp_stdAlloc;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef cc::LazyKVList< rcu_shb, Key, Value, traits_LazyList_cmp_stdAlloc > LazyList_RCU_SHB_cmp_stdAlloc;
+ typedef cc::LazyKVList< rcu_sht, Key, Value, traits_LazyList_cmp_stdAlloc > LazyList_RCU_SHT_cmp_stdAlloc;
+#endif
- typedef cc::MichaelHashMap< cds::gc::PTB, MichaelList_PTB_cmp_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
+ struct traits_LazyList_cmp_stdAlloc_seqcst :
+ public cc::lazy_list::make_traits<
+ co::compare< compare >
+ ,co::memory_model< co::v::sequential_consistent >
>::type
- > MichaelMap_PTB_cmp_stdAlloc_seqcst;
+ {};
+ typedef cc::LazyKVList< cds::gc::HP, Key, Value, traits_LazyList_cmp_stdAlloc_seqcst > LazyList_HP_cmp_stdAlloc_seqcst;
+ typedef cc::LazyKVList< cds::gc::DHP, Key, Value, traits_LazyList_cmp_stdAlloc_seqcst > LazyList_DHP_cmp_stdAlloc_seqcst;
+ typedef cc::LazyKVList< cds::gc::nogc, Key, Value, traits_LazyList_cmp_stdAlloc_seqcst > LazyList_NOGC_cmp_stdAlloc_seqcst;
+ typedef cc::LazyKVList< rcu_gpi, Key, Value, traits_LazyList_cmp_stdAlloc_seqcst > LazyList_RCU_GPI_cmp_stdAlloc_seqcst;
+ typedef cc::LazyKVList< rcu_gpb, Key, Value, traits_LazyList_cmp_stdAlloc_seqcst > LazyList_RCU_GPB_cmp_stdAlloc_seqcst;
+ typedef cc::LazyKVList< rcu_gpt, Key, Value, traits_LazyList_cmp_stdAlloc_seqcst > LazyList_RCU_GPT_cmp_stdAlloc_seqcst;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef cc::LazyKVList< rcu_shb, Key, Value, traits_LazyList_cmp_stdAlloc_seqcst > LazyList_RCU_SHB_cmp_stdAlloc_seqcst;
+ typedef cc::LazyKVList< rcu_sht, Key, Value, traits_LazyList_cmp_stdAlloc_seqcst > LazyList_RCU_SHT_cmp_stdAlloc_seqcst;
+#endif
- typedef cc::MichaelHashMap< cds::gc::PTB, MichaelList_PTB_cmp_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
+ struct traits_LazyList_cmp_michaelAlloc :
+ public cc::lazy_list::make_traits<
+ co::compare< compare >,
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 >
+ {};
+ typedef cc::LazyKVList< cds::gc::HP, Key, Value, traits_LazyList_cmp_michaelAlloc > LazyList_HP_cmp_michaelAlloc;
+ typedef cc::LazyKVList< cds::gc::DHP, Key, Value, traits_LazyList_cmp_michaelAlloc > LazyList_DHP_cmp_michaelAlloc;
+ typedef cc::LazyKVList< cds::gc::nogc, Key, Value, traits_LazyList_cmp_michaelAlloc > LazyList_NOGC _cmp_michaelAlloc;
+ typedef cc::LazyKVList< rcu_gpi, Key, Value, traits_LazyList_cmp_michaelAlloc > LazyList_RCU_GPI_cmp_michaelAlloc;
+ typedef cc::LazyKVList< rcu_gpb, Key, Value, traits_LazyList_cmp_michaelAlloc > LazyList_RCU_GPB_cmp_michaelAlloc;
+ typedef cc::LazyKVList< rcu_gpt, Key, Value, traits_LazyList_cmp_michaelAlloc > LazyList_RCU_GPT_cmp_michaelAlloc;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef cc::LazyKVList< rcu_shb, Key, Value, traits_LazyList_cmp_michaelAlloc > LazyList_RCU_SHB_cmp_michaelAlloc;
+ typedef cc::LazyKVList< rcu_sht, Key, Value, traits_LazyList_cmp_michaelAlloc > LazyList_RCU_SHT_cmp_michaelAlloc;
+#endif
+ struct traits_LazyList_less_stdAlloc :
+ public cc::lazy_list::make_traits<
+ co::less< less >
>::type
- > MichaelMap_PTB_less_stdAlloc;
+ {};
+ typedef cc::LazyKVList< cds::gc::HP, Key, Value, traits_LazyList_less_stdAlloc > LazyList_HP_less_stdAlloc;
+ typedef cc::LazyKVList< cds::gc::DHP, Key, Value, traits_LazyList_less_stdAlloc > LazyList_DHP_less_stdAlloc;
+ typedef cc::LazyKVList< cds::gc::nogc, Key, Value, traits_LazyList_less_stdAlloc > LazyList_NOGC_less_stdAlloc;
+ typedef cc::LazyKVList< rcu_gpi, Key, Value, traits_LazyList_less_stdAlloc > LazyList_RCU_GPI_less_stdAlloc;
+ typedef cc::LazyKVList< rcu_gpb, Key, Value, traits_LazyList_less_stdAlloc > LazyList_RCU_GPB_less_stdAlloc;
+ typedef cc::LazyKVList< rcu_gpt, Key, Value, traits_LazyList_less_stdAlloc > LazyList_RCU_GPT_less_stdAlloc;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef cc::LazyKVList< rcu_shb, Key, Value, traits_LazyList_less_stdAlloc > LazyList_RCU_SHB_less_stdAlloc;
+ typedef cc::LazyKVList< rcu_sht, Key, Value, traits_LazyList_less_stdAlloc > LazyList_RCU_SHT_less_stdAlloc;
+#endif
- typedef cc::MichaelHashMap< cds::gc::PTB, MichaelList_PTB_less_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
+ struct traits_LazyList_less_stdAlloc_seqcst :
+ public cc::lazy_list::make_traits<
+ co::less< less >
+ ,co::memory_model< co::v::sequential_consistent >
>::type
- > MichaelMap_PTB_less_stdAlloc_seqcst;
+ {};
+ typedef cc::LazyKVList< cds::gc::HP, Key, Value, traits_LazyList_less_stdAlloc_seqcst > LazyList_HP_less_stdAlloc_seqcst;
+ typedef cc::LazyKVList< cds::gc::DHP, Key, Value, traits_LazyList_less_stdAlloc_seqcst > LazyList_DHP_less_stdAlloc_seqcst;
+ typedef cc::LazyKVList< cds::gc::nogc, Key, Value, traits_LazyList_less_stdAlloc_seqcst > LazyList_NOGC_less_stdAlloc_seqcst;
+ typedef cc::LazyKVList< rcu_gpi, Key, Value, traits_LazyList_less_stdAlloc_seqcst > LazyList_RCU_GPI_less_stdAlloc_seqcst;
+ typedef cc::LazyKVList< rcu_gpb, Key, Value, traits_LazyList_less_stdAlloc_seqcst > LazyList_RCU_GPB_less_stdAlloc_seqcst;
+ typedef cc::LazyKVList< rcu_gpt, Key, Value, traits_LazyList_less_stdAlloc_seqcst > LazyList_RCU_GPT_less_stdAlloc_seqcst;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef cc::LazyKVList< rcu_shb, Key, Value, traits_LazyList_less_stdAlloc_seqcst > LazyList_RCU_SHB_less_stdAlloc_seqcst;
+ typedef cc::LazyKVList< rcu_sht, Key, Value, traits_LazyList_less_stdAlloc_seqcst > LazyList_RCU_SHT_less_stdAlloc_seqcst;
+#endif
- typedef cc::MichaelHashMap< cds::gc::PTB, MichaelList_PTB_less_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
+ struct traits_LazyList_less_michaelAlloc :
+ public cc::lazy_list::make_traits<
+ co::less< less >,
co::allocator< memory::MichaelAllocator<int> >
>::type
- > MichaelMap_PTB_less_michaelAlloc;
-
- //RCU
- typedef cc::MichaelHashMap< rcu_gpi, MichaelList_RCU_GPI_cmp_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_RCU_GPI_cmp_stdAlloc;
+ {};
+ typedef cc::LazyKVList< cds::gc::HP, Key, Value, traits_LazyList_less_michaelAlloc > LazyList_HP_less_michaelAlloc;
+ typedef cc::LazyKVList< cds::gc::DHP, Key, Value, traits_LazyList_less_michaelAlloc > LazyList_DHP_less_michaelAlloc;
+ typedef cc::LazyKVList< cds::gc::nogc, Key, Value, traits_LazyList_less_michaelAlloc > LazyList_NOGC_less_michaelAlloc;
+ typedef cc::LazyKVList< rcu_gpi, Key, Value, traits_LazyList_less_michaelAlloc > LazyList_RCU_GPI_less_michaelAlloc;
+ typedef cc::LazyKVList< rcu_gpb, Key, Value, traits_LazyList_less_michaelAlloc > LazyList_RCU_GPB_less_michaelAlloc;
+ typedef cc::LazyKVList< rcu_gpt, Key, Value, traits_LazyList_less_michaelAlloc > LazyList_RCU_GPT_less_michaelAlloc;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef cc::LazyKVList< rcu_shb, Key, Value, traits_LazyList_less_michaelAlloc > LazyList_RCU_SHB_less_michaelAlloc;
+ typedef cc::LazyKVList< rcu_sht, Key, Value, traits_LazyList_less_michaelAlloc > LazyList_RCU_SHT_less_michaelAlloc;
+#endif
- typedef cc::MichaelHashMap< rcu_gpi, MichaelList_RCU_GPI_cmp_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_RCU_GPI_cmp_stdAlloc_seqcst;
+ // ***************************************************************************
+ // MichaelHashMap based on LazyKVList
+ typedef cc::MichaelHashMap< cds::gc::HP, LazyList_HP_cmp_stdAlloc, traits_MichaelMap_hash > MichaelMap_Lazy_HP_cmp_stdAlloc;
+ typedef cc::MichaelHashMap< cds::gc::DHP, LazyList_DHP_cmp_stdAlloc, traits_MichaelMap_hash > MichaelMap_Lazy_DHP_cmp_stdAlloc;
+ typedef cc::MichaelHashMap< cds::gc::nogc, LazyList_NOGC_cmp_stdAlloc, traits_MichaelMap_hash > MichaelMap_Lazy_NOGC_cmp_stdAlloc;
+ typedef cc::MichaelHashMap< rcu_gpi, LazyList_RCU_GPI_cmp_stdAlloc, traits_MichaelMap_hash > MichaelMap_Lazy_RCU_GPI_cmp_stdAlloc;
+ typedef cc::MichaelHashMap< rcu_gpb, LazyList_RCU_GPB_cmp_stdAlloc, traits_MichaelMap_hash > MichaelMap_Lazy_RCU_GPB_cmp_stdAlloc;
+ typedef cc::MichaelHashMap< rcu_gpt, LazyList_RCU_GPT_cmp_stdAlloc, traits_MichaelMap_hash > MichaelMap_Lazy_RCU_GPT_cmp_stdAlloc;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef cc::MichaelHashMap< rcu_shb, LazyList_RCU_SHB_cmp_stdAlloc, traits_MichaelMap_hash > MichaelMap_Lazy_RCU_SHB_cmp_stdAlloc;
+ typedef cc::MichaelHashMap< rcu_sht, LazyList_RCU_SHT_cmp_stdAlloc, traits_MichaelMap_hash > MichaelMap_Lazy_RCU_SHT_cmp_stdAlloc;
+#endif
- typedef cc::MichaelHashMap< rcu_gpi, MichaelList_RCU_GPI_cmp_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelMap_RCU_GPI_cmp_michaelAlloc;
+ typedef cc::MichaelHashMap< cds::gc::HP, LazyList_HP_less_stdAlloc, traits_MichaelMap_hash > MichaelMap_Lazy_HP_less_stdAlloc;
+ typedef cc::MichaelHashMap< cds::gc::DHP, LazyList_DHP_less_stdAlloc, traits_MichaelMap_hash > MichaelMap_Lazy_DHP_less_stdAlloc;
+ typedef cc::MichaelHashMap< cds::gc::nogc, LazyList_NOGC_less_stdAlloc, traits_MichaelMap_hash > MichaelMap_Lazy_NOGC_less_stdAlloc;
+ typedef cc::MichaelHashMap< rcu_gpi, LazyList_RCU_GPI_less_stdAlloc, traits_MichaelMap_hash > MichaelMap_Lazy_RCU_GPI_less_stdAlloc;
+ typedef cc::MichaelHashMap< rcu_gpb, LazyList_RCU_GPB_less_stdAlloc, traits_MichaelMap_hash > MichaelMap_Lazy_RCU_GPB_less_stdAlloc;
+ typedef cc::MichaelHashMap< rcu_gpt, LazyList_RCU_GPT_less_stdAlloc, traits_MichaelMap_hash > MichaelMap_Lazy_RCU_GPT_less_stdAlloc;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef cc::MichaelHashMap< rcu_shb, LazyList_RCU_SHB_less_stdAlloc, traits_MichaelMap_hash > MichaelMap_Lazy_RCU_SHB_less_stdAlloc;
+ typedef cc::MichaelHashMap< rcu_sht, LazyList_RCU_SHT_less_stdAlloc, traits_MichaelMap_hash > MichaelMap_Lazy_RCU_SHT_less_stdAlloc;
+#endif
- typedef cc::MichaelHashMap< rcu_gpi, MichaelList_RCU_GPI_less_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_RCU_GPI_less_stdAlloc;
+ typedef cc::MichaelHashMap< cds::gc::HP, LazyList_HP_cmp_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_Lazy_HP_cmp_stdAlloc_seqcst;
+ typedef cc::MichaelHashMap< cds::gc::DHP, LazyList_DHP_cmp_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_Lazy_DHP_cmp_stdAlloc_seqcst;
+ typedef cc::MichaelHashMap< cds::gc::nogc, LazyList_NOGC_cmp_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_Lazy_NOGC_cmp_stdAlloc_seqcst;
+ typedef cc::MichaelHashMap< rcu_gpi, LazyList_RCU_GPI_cmp_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_Lazy_RCU_GPI_cmp_stdAlloc_seqcst;
+ typedef cc::MichaelHashMap< rcu_gpb, LazyList_RCU_GPB_cmp_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_Lazy_RCU_GPB_cmp_stdAlloc_seqcst;
+ typedef cc::MichaelHashMap< rcu_gpt, LazyList_RCU_GPT_cmp_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_Lazy_RCU_GPT_cmp_stdAlloc_seqcst;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef cc::MichaelHashMap< rcu_shb, LazyList_RCU_SHB_cmp_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_Lazy_RCU_SHB_cmp_stdAlloc_seqcst;
+ typedef cc::MichaelHashMap< rcu_sht, LazyList_RCU_SHT_cmp_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_Lazy_RCU_SHT_cmp_stdAlloc_seqcst;
+#endif
- typedef cc::MichaelHashMap< rcu_gpi, MichaelList_RCU_GPI_less_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_RCU_GPI_less_stdAlloc_seqcst;
-
- typedef cc::MichaelHashMap< rcu_gpi, MichaelList_RCU_GPI_less_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelMap_RCU_GPI_less_michaelAlloc;
-
- //
- typedef cc::MichaelHashMap< rcu_gpb, MichaelList_RCU_GPB_cmp_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_RCU_GPB_cmp_stdAlloc;
-
- typedef cc::MichaelHashMap< rcu_gpb, MichaelList_RCU_GPB_cmp_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_RCU_GPB_cmp_stdAlloc_seqcst;
-
- typedef cc::MichaelHashMap< rcu_gpb, MichaelList_RCU_GPB_cmp_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelMap_RCU_GPB_cmp_michaelAlloc;
-
- typedef cc::MichaelHashMap< rcu_gpb, MichaelList_RCU_GPB_less_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_RCU_GPB_less_stdAlloc;
-
- typedef cc::MichaelHashMap< rcu_gpb, MichaelList_RCU_GPB_less_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_RCU_GPB_less_stdAlloc_seqcst;
-
- typedef cc::MichaelHashMap< rcu_gpb, MichaelList_RCU_GPB_less_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelMap_RCU_GPB_less_michaelAlloc;
-
- //
- typedef cc::MichaelHashMap< rcu_gpt, MichaelList_RCU_GPT_cmp_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_RCU_GPT_cmp_stdAlloc;
-
- typedef cc::MichaelHashMap< rcu_gpt, MichaelList_RCU_GPT_cmp_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_RCU_GPT_cmp_stdAlloc_seqcst;
-
- typedef cc::MichaelHashMap< rcu_gpt, MichaelList_RCU_GPT_cmp_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelMap_RCU_GPT_cmp_michaelAlloc;
-
- typedef cc::MichaelHashMap< rcu_gpt, MichaelList_RCU_GPT_less_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_RCU_GPT_less_stdAlloc;
-
- typedef cc::MichaelHashMap< rcu_gpt, MichaelList_RCU_GPT_less_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_RCU_GPT_less_stdAlloc_seqcst;
-
- typedef cc::MichaelHashMap< rcu_gpt, MichaelList_RCU_GPT_less_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelMap_RCU_GPT_less_michaelAlloc;
-
-#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
- typedef cc::MichaelHashMap< rcu_shb, MichaelList_RCU_SHB_cmp_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_RCU_SHB_cmp_stdAlloc;
-
- typedef cc::MichaelHashMap< rcu_shb, MichaelList_RCU_SHB_cmp_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_RCU_SHB_cmp_stdAlloc_seqcst;
-
- typedef cc::MichaelHashMap< rcu_shb, MichaelList_RCU_SHB_cmp_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelMap_RCU_SHB_cmp_michaelAlloc;
-
- typedef cc::MichaelHashMap< rcu_shb, MichaelList_RCU_SHB_less_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_RCU_SHB_less_stdAlloc;
-
- typedef cc::MichaelHashMap< rcu_shb, MichaelList_RCU_SHB_less_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_RCU_SHB_less_stdAlloc_seqcst;
-
- typedef cc::MichaelHashMap< rcu_shb, MichaelList_RCU_SHB_less_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelMap_RCU_SHB_less_michaelAlloc;
-
- //
- typedef cc::MichaelHashMap< rcu_sht, MichaelList_RCU_SHT_cmp_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_RCU_SHT_cmp_stdAlloc;
-
- typedef cc::MichaelHashMap< rcu_sht, MichaelList_RCU_SHT_cmp_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_RCU_SHT_cmp_stdAlloc_seqcst;
-
- typedef cc::MichaelHashMap< rcu_sht, MichaelList_RCU_SHT_cmp_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelMap_RCU_SHT_cmp_michaelAlloc;
-
- typedef cc::MichaelHashMap< rcu_sht, MichaelList_RCU_SHT_less_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_RCU_SHT_less_stdAlloc;
-
- typedef cc::MichaelHashMap< rcu_sht, MichaelList_RCU_SHT_less_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_RCU_SHT_less_stdAlloc_seqcst;
-
- typedef cc::MichaelHashMap< rcu_sht, MichaelList_RCU_SHT_less_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelMap_RCU_SHT_less_michaelAlloc;
-#endif
-
- // gc::nogc
- typedef NogcMapWrapper< cc::MichaelHashMap< cds::gc::nogc, MichaelList_NOGC_cmp_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > > MichaelMap_NOGC_cmp_stdAlloc;
-
- typedef NogcMapWrapper< cc::MichaelHashMap< cds::gc::nogc, MichaelList_NOGC_cmp_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > > MichaelMap_NOGC_cmp_stdAlloc_seqcst;
-
- typedef NogcMapWrapper< cc::MichaelHashMap< cds::gc::nogc, MichaelList_NOGC_cmp_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > > MichaelMap_NOGC_cmp_michaelAlloc;
-
- typedef NogcMapWrapper< cc::MichaelHashMap< cds::gc::nogc, MichaelList_NOGC_less_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > > MichaelMap_NOGC_less_stdAlloc;
-
- typedef NogcMapWrapper< cc::MichaelHashMap< cds::gc::nogc, MichaelList_NOGC_less_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > > MichaelMap_NOGC_less_stdAlloc_seqcst;
-
- typedef NogcMapWrapper< cc::MichaelHashMap< cds::gc::nogc, MichaelList_NOGC_less_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > > MichaelMap_NOGC_less_michaelAlloc;
-
-
- // ***************************************************************************
- // LazyKVList
-
- typedef cc::LazyKVList< cds::gc::HP, Key, Value,
- typename cc::lazy_list::make_traits<
- co::compare< compare >
- >::type
- > LazyList_HP_cmp_stdAlloc;
-
- typedef cc::LazyKVList< cds::gc::HP, Key, Value,
- typename cc::lazy_list::make_traits<
- co::compare< compare >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > LazyList_HP_cmp_stdAlloc_seqcst;
-
- typedef cc::LazyKVList< cds::gc::HP, Key, Value,
- typename cc::lazy_list::make_traits<
- co::compare< compare >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > LazyList_HP_cmp_michaelAlloc;
-
- typedef cc::LazyKVList< cds::gc::HP, Key, Value,
- typename cc::lazy_list::make_traits<
- co::less< less >
- >::type
- > LazyList_HP_less_stdAlloc;
-
- typedef cc::LazyKVList< cds::gc::HP, Key, Value,
- typename cc::lazy_list::make_traits<
- co::less< less >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > LazyList_HP_less_stdAlloc_seqcst;
-
- typedef cc::LazyKVList< cds::gc::HP, Key, Value,
- typename cc::lazy_list::make_traits<
- co::less< less >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > LazyList_HP_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;
-
- // RCU
- typedef cc::LazyKVList< rcu_gpi, Key, Value,
- typename cc::lazy_list::make_traits<
- co::compare< compare >
- >::type
- > LazyList_RCU_GPI_cmp_stdAlloc;
-
- typedef cc::LazyKVList< rcu_gpi, Key, Value,
- typename cc::lazy_list::make_traits<
- co::compare< compare >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > LazyList_RCU_GPI_cmp_stdAlloc_seqcst;
-
- typedef cc::LazyKVList< rcu_gpi, Key, Value,
- typename cc::lazy_list::make_traits<
- co::compare< compare >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > LazyList_RCU_GPI_cmp_michaelAlloc;
-
- typedef cc::LazyKVList< rcu_gpi, Key, Value,
- typename cc::lazy_list::make_traits<
- co::less< less >
- >::type
- > LazyList_RCU_GPI_less_stdAlloc;
-
- typedef cc::LazyKVList< rcu_gpi, Key, Value,
- typename cc::lazy_list::make_traits<
- co::less< less >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > LazyList_RCU_GPI_less_stdAlloc_seqcst;
-
- typedef cc::LazyKVList< rcu_gpi, Key, Value,
- typename cc::lazy_list::make_traits<
- co::less< less >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > LazyList_RCU_GPI_less_michaelAlloc;
-
- //
- typedef cc::LazyKVList< rcu_gpb, Key, Value,
- typename cc::lazy_list::make_traits<
- co::compare< compare >
- >::type
- > LazyList_RCU_GPB_cmp_stdAlloc;
-
- typedef cc::LazyKVList< rcu_gpb, Key, Value,
- typename cc::lazy_list::make_traits<
- co::compare< compare >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > LazyList_RCU_GPB_cmp_stdAlloc_seqcst;
-
- typedef cc::LazyKVList< rcu_gpb, Key, Value,
- typename cc::lazy_list::make_traits<
- co::compare< compare >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > LazyList_RCU_GPB_cmp_michaelAlloc;
-
- typedef cc::LazyKVList< rcu_gpb, Key, Value,
- typename cc::lazy_list::make_traits<
- co::less< less >
- >::type
- > LazyList_RCU_GPB_less_stdAlloc;
-
- typedef cc::LazyKVList< rcu_gpb, Key, Value,
- typename cc::lazy_list::make_traits<
- co::less< less >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > LazyList_RCU_GPB_less_stdAlloc_seqcst;
-
- typedef cc::LazyKVList< rcu_gpb, Key, Value,
- typename cc::lazy_list::make_traits<
- co::less< less >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > LazyList_RCU_GPB_less_michaelAlloc;
-
- //
- typedef cc::LazyKVList< rcu_gpt, Key, Value,
- typename cc::lazy_list::make_traits<
- co::compare< compare >
- >::type
- > LazyList_RCU_GPT_cmp_stdAlloc;
-
- typedef cc::LazyKVList< rcu_gpt, Key, Value,
- typename cc::lazy_list::make_traits<
- co::compare< compare >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > LazyList_RCU_GPT_cmp_stdAlloc_seqcst;
-
- typedef cc::LazyKVList< rcu_gpt, Key, Value,
- typename cc::lazy_list::make_traits<
- co::compare< compare >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > LazyList_RCU_GPT_cmp_michaelAlloc;
-
- typedef cc::LazyKVList< rcu_gpt, Key, Value,
- typename cc::lazy_list::make_traits<
- co::less< less >
- >::type
- > LazyList_RCU_GPT_less_stdAlloc;
-
- typedef cc::LazyKVList< rcu_gpt, Key, Value,
- typename cc::lazy_list::make_traits<
- co::less< less >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > LazyList_RCU_GPT_less_stdAlloc_seqcst;
-
- typedef cc::LazyKVList< rcu_gpt, Key, Value,
- typename cc::lazy_list::make_traits<
- co::less< less >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > LazyList_RCU_GPT_less_michaelAlloc;
+ typedef cc::MichaelHashMap< cds::gc::HP, LazyList_HP_less_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_Lazy_HP_less_stdAlloc_seqcst;
+ typedef cc::MichaelHashMap< cds::gc::DHP, LazyList_DHP_less_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_Lazy_DHP_less_stdAlloc_seqcst;
+ typedef cc::MichaelHashMap< cds::gc::nogc, LazyList_NOGC_less_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_Lazy_NOGC_less_stdAlloc_seqcst;
+ typedef cc::MichaelHashMap< rcu_gpi, LazyList_RCU_GPI_less_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_Lazy_RCU_GPI_less_stdAlloc_seqcst;
+ typedef cc::MichaelHashMap< rcu_gpb, LazyList_RCU_GPB_less_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_Lazy_RCU_GPB_less_stdAlloc_seqcst;
+ typedef cc::MichaelHashMap< rcu_gpt, LazyList_RCU_GPT_less_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_Lazy_RCU_GPT_less_stdAlloc_seqcst;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef cc::MichaelHashMap< rcu_shb, LazyList_RCU_SHB_less_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_Lazy_RCU_SHB_less_stdAlloc_seqcst;
+ typedef cc::MichaelHashMap< rcu_sht, LazyList_RCU_SHT_less_stdAlloc_seqcst, traits_MichaelMap_hash > MichaelMap_Lazy_RCU_SHT_less_stdAlloc_seqcst;
+#endif
+ typedef cc::MichaelHashMap< cds::gc::HP, LazyList_HP_cmp_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_Lazy_HP_cmp_michaelAlloc;
+ typedef cc::MichaelHashMap< cds::gc::DHP, LazyList_DHP_cmp_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_Lazy_DHP_cmp_michaelAlloc;
+ typedef cc::MichaelHashMap< cds::gc::nogc, LazyList_NOGC_cmp_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_Lazy_NOGC_cmp_michaelAlloc;
+ typedef cc::MichaelHashMap< rcu_gpi, LazyList_RCU_GPI_cmp_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_Lazy_RCU_GPI_cmp_michaelAlloc;
+ typedef cc::MichaelHashMap< rcu_gpb, LazyList_RCU_GPB_cmp_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_Lazy_RCU_GPB_cmp_michaelAlloc;
+ typedef cc::MichaelHashMap< rcu_gpt, LazyList_RCU_GPT_cmp_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_Lazy_RCU_GPT_cmp_michaelAlloc;
#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
- typedef cc::LazyKVList< rcu_shb, Key, Value,
- typename cc::lazy_list::make_traits<
- co::compare< compare >
- >::type
- > LazyList_RCU_SHB_cmp_stdAlloc;
-
- typedef cc::LazyKVList< rcu_shb, Key, Value,
- typename cc::lazy_list::make_traits<
- co::compare< compare >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > LazyList_RCU_SHB_cmp_stdAlloc_seqcst;
-
- typedef cc::LazyKVList< rcu_shb, Key, Value,
- typename cc::lazy_list::make_traits<
- co::compare< compare >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > LazyList_RCU_SHB_cmp_michaelAlloc;
-
- typedef cc::LazyKVList< rcu_shb, Key, Value,
- typename cc::lazy_list::make_traits<
- co::less< less >
- >::type
- > LazyList_RCU_SHB_less_stdAlloc;
-
- typedef cc::LazyKVList< rcu_shb, Key, Value,
- typename cc::lazy_list::make_traits<
- co::less< less >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > LazyList_RCU_SHB_less_stdAlloc_seqcst;
-
- typedef cc::LazyKVList< rcu_shb, Key, Value,
- typename cc::lazy_list::make_traits<
- co::less< less >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > LazyList_RCU_SHB_less_michaelAlloc;
-
- //
- typedef cc::LazyKVList< rcu_sht, Key, Value,
- typename cc::lazy_list::make_traits<
- co::compare< compare >
- >::type
- > LazyList_RCU_SHT_cmp_stdAlloc;
-
- typedef cc::LazyKVList< rcu_sht, Key, Value,
- typename cc::lazy_list::make_traits<
- co::compare< compare >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > LazyList_RCU_SHT_cmp_stdAlloc_seqcst;
-
- typedef cc::LazyKVList< rcu_sht, Key, Value,
- typename cc::lazy_list::make_traits<
- co::compare< compare >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > LazyList_RCU_SHT_cmp_michaelAlloc;
-
- typedef cc::LazyKVList< rcu_sht, Key, Value,
- typename cc::lazy_list::make_traits<
- co::less< less >
- >::type
- > LazyList_RCU_SHT_less_stdAlloc;
-
- typedef cc::LazyKVList< rcu_sht, Key, Value,
- typename cc::lazy_list::make_traits<
- co::less< less >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > LazyList_RCU_SHT_less_stdAlloc_seqcst;
-
- typedef cc::LazyKVList< rcu_sht, Key, Value,
- typename cc::lazy_list::make_traits<
- co::less< less >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > LazyList_RCU_SHT_less_michaelAlloc;
+ typedef cc::MichaelHashMap< rcu_shb, LazyList_RCU_SHB_cmp_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_Lazy_RCU_SHB_cmp_michaelAlloc;
+ typedef cc::MichaelHashMap< rcu_sht, LazyList_RCU_SHT_cmp_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_Lazy_RCU_SHT_cmp_michaelAlloc;
#endif
-
- // gc::nogc
- typedef cc::LazyKVList< cds::gc::nogc, Key, Value,
- typename cc::lazy_list::make_traits<
- co::compare< compare >
- >::type
- > LazyList_NOGC_cmp_stdAlloc;
-
- typedef cc::LazyKVList< cds::gc::nogc, Key, Value,
- typename cc::lazy_list::make_traits<
- co::compare< compare >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > LazyList_NOGC_cmp_stdAlloc_seqcst;
-
- typedef cc::LazyKVList< cds::gc::nogc, Key, Value,
- typename cc::lazy_list::make_traits<
- co::compare< compare >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > LazyList_NOGC_cmp_michaelAlloc;
-
- typedef cc::LazyKVList< cds::gc::nogc, Key, Value,
- typename cc::lazy_list::make_traits<
- co::less< less >
- >::type
- > LazyList_NOGC_less_stdAlloc;
-
- typedef cc::LazyKVList< cds::gc::nogc, Key, Value,
- typename cc::lazy_list::make_traits<
- co::less< less >
- ,co::memory_model< co::v::sequential_consistent >
- >::type
- > LazyList_NOGC_less_stdAlloc_seqcst;
-
- typedef cc::LazyKVList< cds::gc::nogc, Key, Value,
- typename cc::lazy_list::make_traits<
- co::less< less >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > LazyList_NOGC_less_michaelAlloc;
-
-
- // ***************************************************************************
- // MichaelHashMap based on LazyKVList
-
- typedef cc::MichaelHashMap< cds::gc::HP, LazyList_HP_cmp_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_Lazy_HP_cmp_stdAlloc;
-
- typedef cc::MichaelHashMap< cds::gc::HP, LazyList_HP_cmp_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_Lazy_HP_cmp_stdAlloc_seqcst;
-
- typedef cc::MichaelHashMap< cds::gc::HP, LazyList_HP_cmp_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelMap_Lazy_HP_cmp_michaelAlloc;
-
- typedef cc::MichaelHashMap< cds::gc::HP, LazyList_HP_less_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_Lazy_HP_less_stdAlloc;
-
- typedef cc::MichaelHashMap< cds::gc::HP, LazyList_HP_less_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_Lazy_HP_less_stdAlloc_seqcst;
-
- typedef cc::MichaelHashMap< cds::gc::HP, LazyList_HP_less_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelMap_Lazy_HP_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;
-
- // RCU
- typedef cc::MichaelHashMap< rcu_gpi, LazyList_RCU_GPI_cmp_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_Lazy_RCU_GPI_cmp_stdAlloc;
-
- typedef cc::MichaelHashMap< rcu_gpi, LazyList_RCU_GPI_cmp_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_Lazy_RCU_GPI_cmp_stdAlloc_seqcst;
-
- typedef cc::MichaelHashMap< rcu_gpi, LazyList_RCU_GPI_cmp_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelMap_Lazy_RCU_GPI_cmp_michaelAlloc;
-
- typedef cc::MichaelHashMap< rcu_gpi, LazyList_RCU_GPI_less_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_Lazy_RCU_GPI_less_stdAlloc;
-
- typedef cc::MichaelHashMap< rcu_gpi, LazyList_RCU_GPI_less_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_Lazy_RCU_GPI_less_stdAlloc_seqcst;
-
- typedef cc::MichaelHashMap< rcu_gpi, LazyList_RCU_GPI_less_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelMap_Lazy_RCU_GPI_less_michaelAlloc;
-
- //
- typedef cc::MichaelHashMap< rcu_gpb, LazyList_RCU_GPB_cmp_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_Lazy_RCU_GPB_cmp_stdAlloc;
-
- typedef cc::MichaelHashMap< rcu_gpb, LazyList_RCU_GPB_cmp_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_Lazy_RCU_GPB_cmp_stdAlloc_seqcst;
-
- typedef cc::MichaelHashMap< rcu_gpb, LazyList_RCU_GPB_cmp_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelMap_Lazy_RCU_GPB_cmp_michaelAlloc;
-
- typedef cc::MichaelHashMap< rcu_gpb, LazyList_RCU_GPB_less_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_Lazy_RCU_GPB_less_stdAlloc;
-
- typedef cc::MichaelHashMap< rcu_gpb, LazyList_RCU_GPB_less_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_Lazy_RCU_GPB_less_stdAlloc_seqcst;
-
- typedef cc::MichaelHashMap< rcu_gpb, LazyList_RCU_GPB_less_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelMap_Lazy_RCU_GPB_less_michaelAlloc;
-
- //
- typedef cc::MichaelHashMap< rcu_gpt, LazyList_RCU_GPT_cmp_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_Lazy_RCU_GPT_cmp_stdAlloc;
-
- typedef cc::MichaelHashMap< rcu_gpt, LazyList_RCU_GPT_cmp_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_Lazy_RCU_GPT_cmp_stdAlloc_seqcst;
-
- typedef cc::MichaelHashMap< rcu_gpt, LazyList_RCU_GPT_cmp_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelMap_Lazy_RCU_GPT_cmp_michaelAlloc;
-
- typedef cc::MichaelHashMap< rcu_gpt, LazyList_RCU_GPT_less_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_Lazy_RCU_GPT_less_stdAlloc;
-
- typedef cc::MichaelHashMap< rcu_gpt, LazyList_RCU_GPT_less_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_Lazy_RCU_GPT_less_stdAlloc_seqcst;
-
- typedef cc::MichaelHashMap< rcu_gpt, LazyList_RCU_GPT_less_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelMap_Lazy_RCU_GPT_less_michaelAlloc;
-
-
+ typedef cc::MichaelHashMap< cds::gc::HP, LazyList_HP_less_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_Lazy_HP_less_michaelAlloc;
+ typedef cc::MichaelHashMap< cds::gc::DHP, LazyList_DHP_less_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_Lazy_DHP_less_michaelAlloc;
+ typedef cc::MichaelHashMap< cds::gc::nogc, LazyList_NOGC_less_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_Lazy_NOGC_less_michaelAlloc;
+ typedef cc::MichaelHashMap< rcu_gpi, LazyList_RCU_GPI_less_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_Lazy_RCU_GPI_less_michaelAlloc;
+ typedef cc::MichaelHashMap< rcu_gpb, LazyList_RCU_GPB_less_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_Lazy_RCU_GPB_less_michaelAlloc;
+ typedef cc::MichaelHashMap< rcu_gpt, LazyList_RCU_GPT_less_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_Lazy_RCU_GPT_less_michaelAlloc;
#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
- typedef cc::MichaelHashMap< rcu_shb, LazyList_RCU_SHB_cmp_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_Lazy_RCU_SHB_cmp_stdAlloc;
-
- typedef cc::MichaelHashMap< rcu_shb, LazyList_RCU_SHB_cmp_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_Lazy_RCU_SHB_cmp_stdAlloc_seqcst;
-
- typedef cc::MichaelHashMap< rcu_shb, LazyList_RCU_SHB_cmp_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelMap_Lazy_RCU_SHB_cmp_michaelAlloc;
-
- typedef cc::MichaelHashMap< rcu_shb, LazyList_RCU_SHB_less_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_Lazy_RCU_SHB_less_stdAlloc;
-
- typedef cc::MichaelHashMap< rcu_shb, LazyList_RCU_SHB_less_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_Lazy_RCU_SHB_less_stdAlloc_seqcst;
-
- typedef cc::MichaelHashMap< rcu_shb, LazyList_RCU_SHB_less_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelMap_Lazy_RCU_SHB_less_michaelAlloc;
-
- //
- typedef cc::MichaelHashMap< rcu_sht, LazyList_RCU_SHT_cmp_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_Lazy_RCU_SHT_cmp_stdAlloc;
-
- typedef cc::MichaelHashMap< rcu_sht, LazyList_RCU_SHT_cmp_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_Lazy_RCU_SHT_cmp_stdAlloc_seqcst;
-
- typedef cc::MichaelHashMap< rcu_sht, LazyList_RCU_SHT_cmp_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelMap_Lazy_RCU_SHT_cmp_michaelAlloc;
-
- typedef cc::MichaelHashMap< rcu_sht, LazyList_RCU_SHT_less_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_Lazy_RCU_SHT_less_stdAlloc;
-
- typedef cc::MichaelHashMap< rcu_sht, LazyList_RCU_SHT_less_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > MichaelMap_Lazy_RCU_SHT_less_stdAlloc_seqcst;
-
- typedef cc::MichaelHashMap< rcu_sht, LazyList_RCU_SHT_less_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > MichaelMap_Lazy_RCU_SHT_less_michaelAlloc;
+ typedef cc::MichaelHashMap< rcu_shb, LazyList_RCU_SHB_less_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_Lazy_RCU_SHB_less_michaelAlloc;
+ typedef cc::MichaelHashMap< rcu_sht, LazyList_RCU_SHT_less_michaelAlloc, traits_MichaelSet_michaelAlloc > MichaelMap_Lazy_RCU_SHT_less_michaelAlloc;
#endif
- // gc::nogc
- typedef NogcMapWrapper< cc::MichaelHashMap< cds::gc::nogc, LazyList_NOGC_cmp_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > > MichaelMap_Lazy_NOGC_cmp_stdAlloc;
-
- typedef NogcMapWrapper< cc::MichaelHashMap< cds::gc::nogc, LazyList_NOGC_cmp_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > > MichaelMap_Lazy_NOGC_cmp_stdAlloc_seqcst;
-
- typedef NogcMapWrapper< cc::MichaelHashMap< cds::gc::nogc, LazyList_NOGC_cmp_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > > MichaelMap_Lazy_NOGC_cmp_michaelAlloc;
-
- typedef NogcMapWrapper< cc::MichaelHashMap< cds::gc::nogc, LazyList_NOGC_less_stdAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > > MichaelMap_Lazy_NOGC_less_stdAlloc;
-
- typedef NogcMapWrapper< cc::MichaelHashMap< cds::gc::nogc, LazyList_NOGC_less_stdAlloc_seqcst,
- typename cc::michael_map::make_traits<
- co::hash< hash >
- >::type
- > > MichaelMap_Lazy_NOGC_less_stdAlloc_seqcst;
-
- typedef NogcMapWrapper< cc::MichaelHashMap< cds::gc::nogc, LazyList_NOGC_less_michaelAlloc,
- typename cc::michael_map::make_traits<
- co::hash< hash >,
- co::allocator< memory::MichaelAllocator<int> >
- >::type
- > > MichaelMap_Lazy_NOGC_less_michaelAlloc;
-
-
// ***************************************************************************
// SplitListMap based on MichaelList
{};
typedef cc::SplitListMap< cds::gc::HP, Key, Value, traits_SplitList_Michael_HP_st_less_seqcst > SplitList_Michael_HP_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::michael_list_tag>
,co::hash< hash >
>::type
>
>::type
- > SplitList_Michael_PTB_dyn_cmp;
+ > SplitList_Michael_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::michael_list_tag>
,co::hash< hash >
>::type
>
>::type
- > SplitList_Michael_PTB_dyn_cmp_seqcst;
+ > SplitList_Michael_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::michael_list_tag>
,cc::split_list::dynamic_bucket_table< false >
>::type
>
>::type
- > SplitList_Michael_PTB_st_cmp;
+ > SplitList_Michael_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::michael_list_tag>
,co::hash< hash >
>::type
>
>::type
- > SplitList_Michael_PTB_st_cmp_seqcst;
+ > SplitList_Michael_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::michael_list_tag>
,co::hash< hash >
>::type
>
>::type
- > SplitList_Michael_PTB_dyn_less;
+ > SplitList_Michael_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::michael_list_tag>
,co::hash< hash >
>::type
>
>::type
- > SplitList_Michael_PTB_dyn_less_seqcst;
+ > SplitList_Michael_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::michael_list_tag>
,cc::split_list::dynamic_bucket_table< false >
>::type
>
>::type
- > SplitList_Michael_PTB_st_less;
+ > SplitList_Michael_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::michael_list_tag>
,co::hash< hash >
>::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;
- // 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,
typedef cc::SkipListMap< cds::gc::HP, Key, Value, traits_SkipListMap_hp_cmp_xorshift_stat > SkipListMap_hp_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 >
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