// MultiLevelHashSet
#undef CDSUNIT_DECLARE_MultiLevelHashSet64
+#undef CDSUNIT_DECLARE_MultiLevelHashSet64_RCU_signal
+#undef CDSUNIT_DECLARE_MultiLevelHashSet_RCU_signal
+
#if CDS_BUILD_BITS == 64
# define CDSUNIT_DECLARE_MultiLevelHashSet64 \
TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_hp_city64) \
TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_hp_city128_stat) \
TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_dhp_city128) \
TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_dhp_city128_stat)
+
+# ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+# define CDSUNIT_DECLARE_MultiLevelHashSet64_RCU_signal \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_city64) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_city64_stat) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_city64) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_city64_stat) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_city128) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_city128_stat) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_city128) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_city128_stat)
+# else
+# define CDSUNIT_DECLARE_MultiLevelHashSet64_RCU_signal
+# endif
#else
# define CDSUNIT_DECLARE_MultiLevelHashSet64
+# define CDSUNIT_DECLARE_MultiLevelHashSet64_RCU_signal
+#endif
+
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+# define CDSUNIT_DECLARE_MultiLevelHashSet_RCU_signal \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_stdhash) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_stdhash_stat) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_stdhash) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_stdhash_stat) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_md5) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_md5_stat) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_md5) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_md5_stat) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_sha256) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_shb_sha256_stat) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_sha256) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_sht_sha256_stat)
+#else
+# define CDSUNIT_DECLARE_MultiLevelHashSet_RCU_signal
#endif
+
+
#undef CDSUNIT_DECLARE_MultiLevelHashSet
#define CDSUNIT_DECLARE_MultiLevelHashSet \
TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_hp_stdhash) \
TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_hp_stdhash_stat) \
TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_dhp_stdhash) \
TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_dhp_stdhash_stat) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpi_stdhash) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpi_stdhash_stat) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpb_stdhash) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpb_stdhash_stat) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpt_stdhash) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpt_stdhash_stat) \
TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_hp_md5) \
TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_hp_md5_stat) \
TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_dhp_md5) \
TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_dhp_md5_stat) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpi_md5) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpi_md5_stat) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpb_md5) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpb_md5_stat) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpt_md5) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpt_md5_stat) \
TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_hp_sha256) \
TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_hp_sha256_stat) \
TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_dhp_sha256) \
TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_dhp_sha256_stat) \
- CDSUNIT_DECLARE_MultiLevelHashSet64
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpi_sha256) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpi_sha256_stat) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpb_sha256) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpb_sha256_stat) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpt_sha256) \
+ TEST_CASE(tag_MultiLevelHashSet, MultiLevelHashSet_rcu_gpt_sha256_stat) \
+ CDSUNIT_DECLARE_MultiLevelHashSet_RCU_signal \
+ CDSUNIT_DECLARE_MultiLevelHashSet64 \
+ CDSUNIT_DECLARE_MultiLevelHashSet64_RCU_signal \
+
#undef CDSUNIT_TEST_MultiLevelHashSet64
+#undef CDSUNIT_TEST_MultiLevelHashSet64_RCU_signal
+#undef CDSUNIT_TEST_MultiLevelHashSet_RCU_signal
+
#if CDS_BUILD_BITS == 64
# define CDSUNIT_TEST_MultiLevelHashSet64 \
CPPUNIT_TEST(MultiLevelHashSet_hp_city64) \
CPPUNIT_TEST(MultiLevelHashSet_hp_city128_stat) \
CPPUNIT_TEST(MultiLevelHashSet_dhp_city128) \
CPPUNIT_TEST(MultiLevelHashSet_dhp_city128_stat)
+
+# ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+# define CDSUNIT_TEST_MultiLevelHashSet64_RCU_signal \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_shb_city64) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_shb_city64_stat) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_sht_city64) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_sht_city64_stat) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_shb_city128) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_shb_city128_stat) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_sht_city128) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_sht_city128_stat)
+# else
+# define CDSUNIT_TEST_MultiLevelHashSet64_RCU_signal
+# endif
+
#else
# define CDSUNIT_TEST_MultiLevelHashSet64
+# define CDSUNIT_TEST_MultiLevelHashSet64_RCU_signal
+#endif
+
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+# define CDSUNIT_TEST_MultiLevelHashSet_RCU_signal \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_shb_stdhash) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_shb_stdhash_stat) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_sht_stdhash) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_sht_stdhash_stat) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_shb_md5) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_shb_md5_stat) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_sht_md5) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_sht_md5_stat) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_shb_sha256) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_shb_sha256_stat) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_sht_sha256) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_sht_sha256_stat)
+#else
+# define CDSUNIT_TEST_MultiLevelHashSet_RCU_signal
#endif
#undef CDSUNIT_TEST_MultiLevelHashSet
CPPUNIT_TEST(MultiLevelHashSet_hp_stdhash_stat) \
CPPUNIT_TEST(MultiLevelHashSet_dhp_stdhash) \
CPPUNIT_TEST(MultiLevelHashSet_dhp_stdhash_stat) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_gpi_stdhash) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_gpi_stdhash_stat) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_gpb_stdhash) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_gpb_stdhash_stat) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_gpt_stdhash) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_gpt_stdhash_stat) \
CPPUNIT_TEST(MultiLevelHashSet_hp_md5) \
CPPUNIT_TEST(MultiLevelHashSet_hp_md5_stat) \
CPPUNIT_TEST(MultiLevelHashSet_dhp_md5) \
CPPUNIT_TEST(MultiLevelHashSet_dhp_md5_stat) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_gpi_md5) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_gpi_md5_stat) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_gpb_md5) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_gpb_md5_stat) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_gpt_md5) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_gpt_md5_stat) \
CPPUNIT_TEST(MultiLevelHashSet_hp_sha256) \
CPPUNIT_TEST(MultiLevelHashSet_hp_sha256_stat) \
CPPUNIT_TEST(MultiLevelHashSet_dhp_sha256) \
CPPUNIT_TEST(MultiLevelHashSet_dhp_sha256_stat) \
- CDSUNIT_TEST_MultiLevelHashSet64
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_gpi_sha256) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_gpi_sha256_stat) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_gpb_sha256) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_gpb_sha256_stat) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_gpt_sha256) \
+ CPPUNIT_TEST(MultiLevelHashSet_rcu_gpt_sha256_stat) \
+ CDSUNIT_TEST_MultiLevelHashSet_RCU_signal \
+ CDSUNIT_TEST_MultiLevelHashSet64 \
+ CDSUNIT_TEST_MultiLevelHashSet64_RCU_signal
#ifndef CDSUNIT_SET_TYPE_MICHAEL_H
#define CDSUNIT_SET_TYPE_MICHAEL_H
+#include "set2/set_type.h"
+
#include <cds/container/multilevel_hashset_hp.h>
#include <cds/container/multilevel_hashset_dhp.h>
+#include <cds/container/multilevel_hashset_rcu.h>
#include "print_multilevel_hashset_stat.h"
#include "hashing/hash_func.h"
class MultiLevelHashSet : public cc::MultiLevelHashSet< GC, T, Traits >
{
typedef cc::MultiLevelHashSet< GC, T, Traits > base_class;
+
+ template <typename G>
+ struct get_extracted_ptr
+ {
+ typedef typename base_class::guarded_ptr extracted_ptr;
+ };
+
+ template <typename RCU>
+ struct get_extracted_ptr<cds::urcu::gc<RCU>>
+ {
+ typedef typename base_class::exempt_ptr extracted_ptr;
+ };
+
public:
typedef typename T::hasher hasher ;
- typedef typename base_class::guarded_ptr guarded_ptr;
+ typedef typename get_extracted_ptr<GC>::extracted_ptr extracted_ptr;
template <class Config>
MultiLevelHashSet( Config const& cfg )
}
template <typename Q>
- guarded_ptr extract(Q const& key)
+ extracted_ptr extract(Q const& key)
{
return base_class::extract( hasher()(key) );
}
typedef MultiLevelHashSet< cds::gc::HP, key_val<std::hash<key_type>>, default_traits > MultiLevelHashSet_hp_stdhash;
typedef MultiLevelHashSet< cds::gc::DHP, key_val<std::hash<key_type>>, default_traits > MultiLevelHashSet_dhp_stdhash;
+ typedef MultiLevelHashSet< rcu_gpi, key_val<std::hash<key_type>>, default_traits > MultiLevelHashSet_rcu_gpi_stdhash;
+ typedef MultiLevelHashSet< rcu_gpb, key_val<std::hash<key_type>>, default_traits > MultiLevelHashSet_rcu_gpb_stdhash;
+ typedef MultiLevelHashSet< rcu_gpt, key_val<std::hash<key_type>>, default_traits > MultiLevelHashSet_rcu_gpt_stdhash;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef MultiLevelHashSet< rcu_shb, key_val<std::hash<key_type>>, default_traits > MultiLevelHashSet_rcu_shb_stdhash;
+ typedef MultiLevelHashSet< rcu_sht, key_val<std::hash<key_type>>, default_traits > MultiLevelHashSet_rcu_sht_stdhash;
+#endif
struct traits_MultiLevelHashSet_stat: public cc::multilevel_hashset::make_traits<
co::type_traits< default_traits >,
typedef MultiLevelHashSet< cds::gc::HP, key_val<std::hash<key_type>>, traits_MultiLevelHashSet_stat > MultiLevelHashSet_hp_stdhash_stat;
typedef MultiLevelHashSet< cds::gc::DHP, key_val<std::hash<key_type>>, traits_MultiLevelHashSet_stat > MultiLevelHashSet_dhp_stdhash_stat;
+ typedef MultiLevelHashSet< rcu_gpi, key_val<std::hash<key_type>>, traits_MultiLevelHashSet_stat > MultiLevelHashSet_rcu_gpi_stdhash_stat;
+ typedef MultiLevelHashSet< rcu_gpb, key_val<std::hash<key_type>>, traits_MultiLevelHashSet_stat > MultiLevelHashSet_rcu_gpb_stdhash_stat;
+ typedef MultiLevelHashSet< rcu_gpt, key_val<std::hash<key_type>>, traits_MultiLevelHashSet_stat > MultiLevelHashSet_rcu_gpt_stdhash_stat;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef MultiLevelHashSet< rcu_shb, key_val<std::hash<key_type>>, traits_MultiLevelHashSet_stat > MultiLevelHashSet_rcu_shb_stdhash_stat;
+ typedef MultiLevelHashSet< rcu_sht, key_val<std::hash<key_type>>, traits_MultiLevelHashSet_stat > MultiLevelHashSet_rcu_sht_stdhash_stat;
+#endif
// SHA256
typedef MultiLevelHashSet< cds::gc::HP, key_val<::hashing::sha256>, default_traits > MultiLevelHashSet_hp_sha256;
typedef MultiLevelHashSet< cds::gc::DHP, key_val<::hashing::sha256>, default_traits > MultiLevelHashSet_dhp_sha256;
+ typedef MultiLevelHashSet< rcu_gpi, key_val<::hashing::sha256>, default_traits > MultiLevelHashSet_rcu_gpi_sha256;
+ typedef MultiLevelHashSet< rcu_gpb, key_val<::hashing::sha256>, default_traits > MultiLevelHashSet_rcu_gpb_sha256;
+ typedef MultiLevelHashSet< rcu_gpt, key_val<::hashing::sha256>, default_traits > MultiLevelHashSet_rcu_gpt_sha256;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef MultiLevelHashSet< rcu_shb, key_val<::hashing::sha256>, default_traits > MultiLevelHashSet_rcu_shb_sha256;
+ typedef MultiLevelHashSet< rcu_sht, key_val<::hashing::sha256>, default_traits > MultiLevelHashSet_rcu_sht_sha256;
+#endif
struct traits_MultiLevelHashSet_sha256_stat : public default_traits
{
};
typedef MultiLevelHashSet< cds::gc::HP, key_val<::hashing::sha256>, traits_MultiLevelHashSet_sha256_stat > MultiLevelHashSet_hp_sha256_stat;
typedef MultiLevelHashSet< cds::gc::DHP, key_val<::hashing::sha256>, traits_MultiLevelHashSet_sha256_stat > MultiLevelHashSet_dhp_sha256_stat;
+ typedef MultiLevelHashSet< rcu_gpi, key_val<::hashing::sha256>, traits_MultiLevelHashSet_sha256_stat > MultiLevelHashSet_rcu_gpi_sha256_stat;
+ typedef MultiLevelHashSet< rcu_gpb, key_val<::hashing::sha256>, traits_MultiLevelHashSet_sha256_stat > MultiLevelHashSet_rcu_gpb_sha256_stat;
+ typedef MultiLevelHashSet< rcu_gpt, key_val<::hashing::sha256>, traits_MultiLevelHashSet_sha256_stat > MultiLevelHashSet_rcu_gpt_sha256_stat;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef MultiLevelHashSet< rcu_shb, key_val<::hashing::sha256>, traits_MultiLevelHashSet_sha256_stat > MultiLevelHashSet_rcu_shb_sha256_stat;
+ typedef MultiLevelHashSet< rcu_sht, key_val<::hashing::sha256>, traits_MultiLevelHashSet_sha256_stat > MultiLevelHashSet_rcu_sht_sha256_stat;
+#endif
//MD5
typedef MultiLevelHashSet< cds::gc::HP, key_val<::hashing::md5>, default_traits > MultiLevelHashSet_hp_md5;
typedef MultiLevelHashSet< cds::gc::DHP, key_val<::hashing::md5>, default_traits > MultiLevelHashSet_dhp_md5;
+ typedef MultiLevelHashSet< rcu_gpi, key_val<::hashing::md5>, default_traits > MultiLevelHashSet_rcu_gpi_md5;
+ typedef MultiLevelHashSet< rcu_gpb, key_val<::hashing::md5>, default_traits > MultiLevelHashSet_rcu_gpb_md5;
+ typedef MultiLevelHashSet< rcu_gpt, key_val<::hashing::md5>, default_traits > MultiLevelHashSet_rcu_gpt_md5;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef MultiLevelHashSet< rcu_shb, key_val<::hashing::md5>, default_traits > MultiLevelHashSet_rcu_shb_md5;
+ typedef MultiLevelHashSet< rcu_sht, key_val<::hashing::md5>, default_traits > MultiLevelHashSet_rcu_sht_md5;
+#endif
struct traits_MultiLevelHashSet_md5_stat : public default_traits
{
};
typedef MultiLevelHashSet< cds::gc::HP, key_val<::hashing::md5>, traits_MultiLevelHashSet_md5_stat > MultiLevelHashSet_hp_md5_stat;
typedef MultiLevelHashSet< cds::gc::DHP, key_val<::hashing::md5>, traits_MultiLevelHashSet_md5_stat > MultiLevelHashSet_dhp_md5_stat;
+ typedef MultiLevelHashSet< rcu_gpi, key_val<::hashing::md5>, traits_MultiLevelHashSet_md5_stat > MultiLevelHashSet_rcu_gpi_md5_stat;
+ typedef MultiLevelHashSet< rcu_gpb, key_val<::hashing::md5>, traits_MultiLevelHashSet_md5_stat > MultiLevelHashSet_rcu_gpb_md5_stat;
+ typedef MultiLevelHashSet< rcu_gpt, key_val<::hashing::md5>, traits_MultiLevelHashSet_md5_stat > MultiLevelHashSet_rcu_gpt_md5_stat;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef MultiLevelHashSet< rcu_shb, key_val<::hashing::md5>, traits_MultiLevelHashSet_md5_stat > MultiLevelHashSet_rcu_shb_md5_stat;
+ typedef MultiLevelHashSet< rcu_sht, key_val<::hashing::md5>, traits_MultiLevelHashSet_md5_stat > MultiLevelHashSet_rcu_sht_md5_stat;
+#endif
// CityHash
#if CDS_BUILD_BITS == 64
};
typedef MultiLevelHashSet< cds::gc::HP, key_val<::hashing::city64>, traits_MultiLevelHashSet_city64 > MultiLevelHashSet_hp_city64;
typedef MultiLevelHashSet< cds::gc::DHP, key_val<::hashing::city64>, traits_MultiLevelHashSet_city64 > MultiLevelHashSet_dhp_city64;
+ typedef MultiLevelHashSet< rcu_gpi, key_val<::hashing::city64>, traits_MultiLevelHashSet_city64 > MultiLevelHashSet_rcu_gpi_city64;
+ typedef MultiLevelHashSet< rcu_gpb, key_val<::hashing::city64>, traits_MultiLevelHashSet_city64 > MultiLevelHashSet_rcu_gpb_city64;
+ typedef MultiLevelHashSet< rcu_gpt, key_val<::hashing::city64>, traits_MultiLevelHashSet_city64 > MultiLevelHashSet_rcu_gpt_city64;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef MultiLevelHashSet< rcu_shb, key_val<::hashing::city64>, traits_MultiLevelHashSet_city64 > MultiLevelHashSet_rcu_shb_city64;
+ typedef MultiLevelHashSet< rcu_sht, key_val<::hashing::city64>, traits_MultiLevelHashSet_city64 > MultiLevelHashSet_rcu_sht_city64;
+#endif
struct traits_MultiLevelHashSet_city64_stat : public traits_MultiLevelHashSet_city64
{
};
typedef MultiLevelHashSet< cds::gc::HP, key_val<::hashing::city64>, traits_MultiLevelHashSet_city64_stat > MultiLevelHashSet_hp_city64_stat;
typedef MultiLevelHashSet< cds::gc::DHP, key_val<::hashing::city64>, traits_MultiLevelHashSet_city64_stat > MultiLevelHashSet_dhp_city64_stat;
+ typedef MultiLevelHashSet< rcu_gpi, key_val<::hashing::city64>, traits_MultiLevelHashSet_city64_stat > MultiLevelHashSet_rcu_gpi_city64_stat;
+ typedef MultiLevelHashSet< rcu_gpb, key_val<::hashing::city64>, traits_MultiLevelHashSet_city64_stat > MultiLevelHashSet_rcu_gpb_city64_stat;
+ typedef MultiLevelHashSet< rcu_gpt, key_val<::hashing::city64>, traits_MultiLevelHashSet_city64_stat > MultiLevelHashSet_rcu_gpt_city64_stat;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef MultiLevelHashSet< rcu_shb, key_val<::hashing::city64>, traits_MultiLevelHashSet_city64_stat > MultiLevelHashSet_rcu_shb_city64_stat;
+ typedef MultiLevelHashSet< rcu_sht, key_val<::hashing::city64>, traits_MultiLevelHashSet_city64_stat > MultiLevelHashSet_rcu_sht_city64_stat;
+#endif
struct traits_MultiLevelHashSet_city128 : public default_traits
{
};
typedef MultiLevelHashSet< cds::gc::HP, key_val<::hashing::city128>, traits_MultiLevelHashSet_city128 > MultiLevelHashSet_hp_city128;
typedef MultiLevelHashSet< cds::gc::DHP, key_val<::hashing::city128>, traits_MultiLevelHashSet_city128 > MultiLevelHashSet_dhp_city128;
+ typedef MultiLevelHashSet< rcu_gpi, key_val<::hashing::city128>, traits_MultiLevelHashSet_city128 > MultiLevelHashSet_rcu_gpi_city128;
+ typedef MultiLevelHashSet< rcu_gpb, key_val<::hashing::city128>, traits_MultiLevelHashSet_city128 > MultiLevelHashSet_rcu_gpb_city128;
+ typedef MultiLevelHashSet< rcu_gpt, key_val<::hashing::city128>, traits_MultiLevelHashSet_city128 > MultiLevelHashSet_rcu_gpt_city128;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef MultiLevelHashSet< rcu_shb, key_val<::hashing::city128>, traits_MultiLevelHashSet_city128 > MultiLevelHashSet_rcu_shb_city128;
+ typedef MultiLevelHashSet< rcu_sht, key_val<::hashing::city128>, traits_MultiLevelHashSet_city128 > MultiLevelHashSet_rcu_sht_city128;
+#endif
struct traits_MultiLevelHashSet_city128_stat : public traits_MultiLevelHashSet_city128
{
};
typedef MultiLevelHashSet< cds::gc::HP, key_val<::hashing::city128>, traits_MultiLevelHashSet_city128_stat > MultiLevelHashSet_hp_city128_stat;
typedef MultiLevelHashSet< cds::gc::DHP, key_val<::hashing::city128>, traits_MultiLevelHashSet_city128_stat > MultiLevelHashSet_dhp_city128_stat;
+ typedef MultiLevelHashSet< rcu_gpi, key_val<::hashing::city128>, traits_MultiLevelHashSet_city128_stat > MultiLevelHashSet_rcu_gpi_city128_stat;
+ typedef MultiLevelHashSet< rcu_gpb, key_val<::hashing::city128>, traits_MultiLevelHashSet_city128_stat > MultiLevelHashSet_rcu_gpb_city128_stat;
+ typedef MultiLevelHashSet< rcu_gpt, key_val<::hashing::city128>, traits_MultiLevelHashSet_city128_stat > MultiLevelHashSet_rcu_gpt_city128_stat;
+#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
+ typedef MultiLevelHashSet< rcu_shb, key_val<::hashing::city128>, traits_MultiLevelHashSet_city128_stat > MultiLevelHashSet_rcu_shb_city128_stat;
+ typedef MultiLevelHashSet< rcu_sht, key_val<::hashing::city128>, traits_MultiLevelHashSet_city128_stat > MultiLevelHashSet_rcu_sht_city128_stat;
+#endif
+
#endif // #if CDS_BUILD_BITS == 64
};