*/
typedef empty_stat stat;
- /// RCU deadlock checking policy (only for \ref cds_container_MultilevelHashSet_rcu "RCU-based MultilevelHashSet")
+ /// RCU deadlock checking policy (only for \ref cds_container_MultilevelHashMap_rcu "RCU-based MultilevelHashMap")
/**
@copydetails cds::intrusive::multilevel_hashset::traits::rcu_check_deadlock
*/
<ClCompile Include="..\..\..\tests\unit\map2\map_insdel_int_cuckoo.cpp" />\r
<ClCompile Include="..\..\..\tests\unit\map2\map_insdel_int_ellentree.cpp" />\r
<ClCompile Include="..\..\..\tests\unit\map2\map_insdel_int_michael.cpp" />\r
+ <ClCompile Include="..\..\..\tests\unit\map2\map_insdel_int_multilevelhashmap.cpp" />\r
<ClCompile Include="..\..\..\tests\unit\map2\map_insdel_int_skip.cpp" />\r
<ClCompile Include="..\..\..\tests\unit\map2\map_insdel_int_split.cpp" />\r
<ClCompile Include="..\..\..\tests\unit\map2\map_insdel_int_striped.cpp" />\r
<ClCompile Include="..\..\..\tests\unit\map2\map_insdel_string_striped.cpp">\r
<Filter>map_insdel_string</Filter>\r
</ClCompile>\r
+ <ClCompile Include="..\..\..\tests\unit\map2\map_insdel_int_multilevelhashmap.cpp">\r
+ <Filter>map_insdel_int</Filter>\r
+ </ClCompile>\r
</ItemGroup>\r
<ItemGroup>\r
<Filter Include="map_insdel_func">\r
tests/unit/map2/map_insdel_func_refinable.cpp \
tests/unit/map2/map_insdel_func_cuckoo.cpp \
tests/unit/map2/map_insdel_int.cpp \
+ tests/unit/map2/map_insdel_int_bronsonavltree.cpp \
+ tests/unit/map2/map_insdel_int_cuckoo.cpp \
+ tests/unit/map2/map_insdel_int_ellentree.cpp \
tests/unit/map2/map_insdel_int_michael.cpp \
- tests/unit/map2/map_insdel_int_split.cpp \
+ tests/unit/map2/map_insdel_int_multilevelhashmap.cpp \
tests/unit/map2/map_insdel_int_skip.cpp \
- tests/unit/map2/map_insdel_int_ellentree.cpp \
- tests/unit/map2/map_insdel_int_bronsonavltree.cpp \
+ tests/unit/map2/map_insdel_int_split.cpp \
tests/unit/map2/map_insdel_int_striped.cpp \
- tests/unit/map2/map_insdel_int_cuckoo.cpp \
tests/unit/map2/map_insdel_item_int.cpp \
tests/unit/map2/map_insdel_item_int_michael.cpp \
tests/unit/map2/map_insdel_item_int_split.cpp \
MapSize=50000\r
MaxLoadFactor=4\r
PrintGCStateFlag=1\r
-#Cuckoo map properties\r
+# *** Cuckoo map properties\r
CuckooInitialSize=256\r
CuckooProbesetSize=8\r
# 0 - use default\r
CuckooProbesetThreshold=0 \r
+# *** MultiLevelHashMap properties\r
+MultiLevelMapHeadBits=8\r
+MultiLevelMapArrayBits=4\r
+\r
\r
[Map_InsDel_func]\r
InsertThreadCount=4\r
MapSize=100000\r
MaxLoadFactor=4\r
PrintGCStateFlag=1\r
-#Cuckoo map properties\r
+# *** Cuckoo map properties\r
CuckooInitialSize=1024\r
CuckooProbesetSize=16\r
# 0 - use default\r
CuckooProbesetThreshold=0 \r
+# *** MultiLevelHashMap properties\r
+MultiLevelMapHeadBits=8\r
+MultiLevelMapArrayBits=4\r
+\r
\r
[Map_InsDel_func]\r
InsertThreadCount=4\r
MapSize=1000000\r
MaxLoadFactor=4\r
PrintGCStateFlag=1\r
-#Cuckoo map properties\r
+# *** Cuckoo map properties\r
CuckooInitialSize=1024\r
CuckooProbesetSize=16\r
# 0 - use default\r
CuckooProbesetThreshold=0 \r
+# *** MultiLevelHashMap properties\r
+MultiLevelMapHeadBits=10\r
+MultiLevelMapArrayBits=4\r
\r
[Map_InsDel_func]\r
InsertThreadCount=4\r
map_insdel_func_refinable.cpp
map_insdel_func_cuckoo.cpp
map_insdel_int.cpp
+ map_insdel_int_bronsonavltree.cpp
+ map_insdel_int_cuckoo.cpp
+ map_insdel_int_ellentree.cpp
map_insdel_int_michael.cpp
- map_insdel_int_split.cpp
+ map_insdel_int_multilevelhashmap.cpp
map_insdel_int_skip.cpp
- map_insdel_int_ellentree.cpp
- map_insdel_int_bronsonavltree.cpp
+ map_insdel_int_split.cpp
map_insdel_int_striped.cpp
- map_insdel_int_cuckoo.cpp
map_insdel_item_int.cpp
map_insdel_item_int_michael.cpp
map_insdel_item_int_split.cpp
c_nCuckooProbesetSize = cfg.getULong("CuckooProbesetSize", static_cast<unsigned long>(c_nCuckooProbesetSize) );
c_nCuckooProbesetThreshold = cfg.getULong("CuckooProbesetThreshold", static_cast<unsigned long>(c_nCuckooProbesetThreshold) );
+ c_nMultiLevelMap_HeadBits = cfg.getULong("MultiLevelMapHeadBits", static_cast<unsigned long>(c_nMultiLevelMap_HeadBits) );
+ c_nMultiLevelMap_ArrayBits = cfg.getULong("MultiLevelMapArrayBits", static_cast<unsigned long>(c_nMultiLevelMap_ArrayBits) );
+
c_bPrintGCState = cfg.getBool("PrintGCStateFlag", c_bPrintGCState );
if ( c_nInsertThreadCount == 0 )
size_t c_nDeleteThreadCount = 4; // count of deletion thread
size_t c_nThreadPassCount = 4; // pass count for each thread
size_t c_nMaxLoadFactor = 8; // maximum load factor
- size_t c_nCuckooInitialSize = 1024;// initial size for CuckooMap
- size_t c_nCuckooProbesetSize = 16; // CuckooMap probeset size (only for list-based probeset)
- size_t c_nCuckooProbesetThreshold = 0; // CUckooMap probeset threshold (o - use default)
+
+ size_t c_nCuckooInitialSize = 1024;// initial size for CuckooMap
+ size_t c_nCuckooProbesetSize = 16; // CuckooMap probeset size (only for list-based probeset)
+ size_t c_nCuckooProbesetThreshold = 0; // CUckooMap probeset threshold (o - use default)
+
+ size_t c_nMultiLevelMap_HeadBits = 10;
+ size_t c_nMultiLevelMap_ArrayBits = 4;
bool c_bPrintGCState = true;
CDSUNIT_DECLARE_SkipListMap
CDSUNIT_DECLARE_EllenBinTreeMap
CDSUNIT_DECLARE_BronsonAVLTreeMap
+ CDSUNIT_DECLARE_MultiLevelHashMap
CDSUNIT_DECLARE_StripedMap
CDSUNIT_DECLARE_RefinableMap
CDSUNIT_DECLARE_CuckooMap
CDSUNIT_TEST_SkipListMap
CDSUNIT_TEST_EllenBinTreeMap
CDSUNIT_TEST_BronsonAVLTreeMap
+ CDSUNIT_TEST_MultiLevelHashMap
CDSUNIT_TEST_CuckooMap
CDSUNIT_TEST_StripedMap
CDSUNIT_TEST_RefinableMap
--- /dev/null
+//$$CDS-header$$
+
+#include "map2/map_insdel_int.h"
+#include "map2/map_type_multilevel_hashmap.h"
+
+#undef TEST_CASE
+#define TEST_CASE(TAG, X) void Map_InsDel_int::X() { run_test<typename map_type< TAG, key_type, value_type>::X>(); }
+#include "map2/map_defs.h"
+
+namespace map2 {
+ CDSUNIT_DECLARE_MultiLevelHashMap
+} // namespace map2