├── .gitignore ├── .travis.yml ├── CMakeLists.txt ├── LICENSE ├── appveyor.yml ├── build ├── CI │ ├── VASEx-CI-2 │ │ ├── cds-libs │ │ ├── ci-build │ │ └── ci-env │ ├── VASEx-CI │ │ ├── cds-libs │ │ ├── ci-build │ │ └── ci-env │ ├── cmake-gen │ ├── gen-all │ ├── travis-ci │ │ ├── install.sh │ │ └── run.sh │ └── vasex │ │ ├── AmdEpyc79-clang10-rel │ │ ├── AmdEpyc79-clang9-rel │ │ ├── AmdEpyc79-gcc10-rel │ │ ├── AmdEpyc79-gcc8-rel │ │ ├── AmdEpyc79-gcc9-rel │ │ ├── AmdEpyc82-clang8-rel │ │ ├── AmdEpyc82-gcc10-rel │ │ ├── AmdEpyc82-gcc8-rel │ │ ├── GCCFarm110-ppc64-rel │ │ ├── GCCFarm112-ppc64-rel │ │ ├── GCCFarm112-ppc64_gcc6-rel │ │ ├── GCCFarm113-arm64-rel │ │ ├── GCCFarm114-arm64-rel │ │ ├── Xeon72-gcc6-rel │ │ ├── Xeon72-gcc7-rel │ │ ├── Xeon74-gcc6-rel │ │ └── Xeon74-gcc7-rel └── cmake │ ├── TargetArch.cmake │ ├── description.txt │ ├── post_install_script.sh │ ├── post_uninstall_script.sh │ └── readme.md ├── cds ├── algo │ ├── atomic.h │ ├── backoff_strategy.h │ ├── base.h │ ├── bit_reversal.h │ ├── bitop.h │ ├── elimination.h │ ├── elimination_opt.h │ ├── elimination_tls.h │ ├── flat_combining.h │ ├── flat_combining │ │ ├── defs.h │ │ ├── kernel.h │ │ └── wait_strategy.h │ ├── int_algo.h │ └── split_bitstring.h ├── compiler │ ├── backoff.h │ ├── bitop.h │ ├── clang │ │ └── defs.h │ ├── cxx11_atomic.h │ ├── defs.h │ ├── feature_tsan.h │ ├── gcc │ │ ├── amd64 │ │ │ ├── backoff.h │ │ │ ├── bitop.h │ │ │ └── cxx11_atomic.h │ │ ├── arm7 │ │ │ └── backoff.h │ │ ├── arm8 │ │ │ └── backoff.h │ │ ├── compiler_barriers.h │ │ ├── compiler_macro.h │ │ ├── defs.h │ │ ├── ia64 │ │ │ ├── backoff.h │ │ │ ├── bitop.h │ │ │ └── cxx11_atomic.h │ │ ├── ppc64 │ │ │ ├── backoff.h │ │ │ └── bitop.h │ │ ├── sparc │ │ │ ├── backoff.h │ │ │ ├── bitop.h │ │ │ └── cxx11_atomic.h │ │ └── x86 │ │ │ ├── backoff.h │ │ │ ├── bitop.h │ │ │ ├── cxx11_atomic.h │ │ │ └── cxx11_atomic32.h │ ├── icl │ │ ├── compiler_barriers.h │ │ └── defs.h │ └── vc │ │ ├── amd64 │ │ ├── backoff.h │ │ ├── bitop.h │ │ └── cxx11_atomic.h │ │ ├── compiler_barriers.h │ │ ├── defs.h │ │ └── x86 │ │ ├── backoff.h │ │ ├── bitop.h │ │ └── cxx11_atomic.h ├── container │ ├── basket_queue.h │ ├── bronson_avltree_map_rcu.h │ ├── cuckoo_map.h │ ├── cuckoo_set.h │ ├── details │ │ ├── base.h │ │ ├── bronson_avltree_base.h │ │ ├── cuckoo_base.h │ │ ├── ellen_bintree_base.h │ │ ├── feldman_hashmap_base.h │ │ ├── feldman_hashset_base.h │ │ ├── guarded_ptr_cast.h │ │ ├── iterable_list_base.h │ │ ├── lazy_list_base.h │ │ ├── make_iterable_kvlist.h │ │ ├── make_iterable_list.h │ │ ├── make_lazy_kvlist.h │ │ ├── make_lazy_list.h │ │ ├── make_michael_kvlist.h │ │ ├── make_michael_list.h │ │ ├── make_skip_list_map.h │ │ ├── make_skip_list_set.h │ │ ├── make_split_list_set.h │ │ ├── make_split_list_set_iterable_list.h │ │ ├── make_split_list_set_lazy_list.h │ │ ├── make_split_list_set_michael_list.h │ │ ├── michael_list_base.h │ │ ├── michael_map_base.h │ │ ├── michael_set_base.h │ │ ├── skip_list_base.h │ │ └── split_list_base.h │ ├── ellen_bintree_map_dhp.h │ ├── ellen_bintree_map_hp.h │ ├── ellen_bintree_map_rcu.h │ ├── ellen_bintree_set_dhp.h │ ├── ellen_bintree_set_hp.h │ ├── ellen_bintree_set_rcu.h │ ├── fcdeque.h │ ├── fcpriority_queue.h │ ├── fcqueue.h │ ├── fcstack.h │ ├── feldman_hashmap_dhp.h │ ├── feldman_hashmap_hp.h │ ├── feldman_hashmap_rcu.h │ ├── feldman_hashset_dhp.h │ ├── feldman_hashset_hp.h │ ├── feldman_hashset_rcu.h │ ├── impl │ │ ├── bronson_avltree_map_rcu.h │ │ ├── ellen_bintree_map.h │ │ ├── ellen_bintree_set.h │ │ ├── feldman_hashmap.h │ │ ├── feldman_hashset.h │ │ ├── iterable_kvlist.h │ │ ├── iterable_list.h │ │ ├── lazy_kvlist.h │ │ ├── lazy_list.h │ │ ├── michael_kvlist.h │ │ ├── michael_list.h │ │ ├── skip_list_map.h │ │ └── skip_list_set.h │ ├── iterable_kvlist_dhp.h │ ├── iterable_kvlist_hp.h │ ├── iterable_list_dhp.h │ ├── iterable_list_hp.h │ ├── lazy_kvlist_dhp.h │ ├── lazy_kvlist_hp.h │ ├── lazy_kvlist_nogc.h │ ├── lazy_kvlist_rcu.h │ ├── lazy_list_dhp.h │ ├── lazy_list_hp.h │ ├── lazy_list_nogc.h │ ├── lazy_list_rcu.h │ ├── michael_kvlist_dhp.h │ ├── michael_kvlist_hp.h │ ├── michael_kvlist_nogc.h │ ├── michael_kvlist_rcu.h │ ├── michael_list_dhp.h │ ├── michael_list_hp.h │ ├── michael_list_nogc.h │ ├── michael_list_rcu.h │ ├── michael_map.h │ ├── michael_map_nogc.h │ ├── michael_map_rcu.h │ ├── michael_set.h │ ├── michael_set_nogc.h │ ├── michael_set_rcu.h │ ├── moir_queue.h │ ├── mspriority_queue.h │ ├── msqueue.h │ ├── optimistic_queue.h │ ├── rwqueue.h │ ├── segmented_queue.h │ ├── skip_list_map_dhp.h │ ├── skip_list_map_hp.h │ ├── skip_list_map_nogc.h │ ├── skip_list_map_rcu.h │ ├── skip_list_set_dhp.h │ ├── skip_list_set_hp.h │ ├── skip_list_set_nogc.h │ ├── skip_list_set_rcu.h │ ├── split_list_map.h │ ├── split_list_map_nogc.h │ ├── split_list_map_rcu.h │ ├── split_list_set.h │ ├── split_list_set_nogc.h │ ├── split_list_set_rcu.h │ ├── striped_map.h │ ├── striped_map │ │ ├── boost_flat_map.h │ │ ├── boost_list.h │ │ ├── boost_map.h │ │ ├── boost_slist.h │ │ ├── boost_unordered_map.h │ │ ├── std_hash_map.h │ │ ├── std_list.h │ │ └── std_map.h │ ├── striped_set.h │ ├── striped_set │ │ ├── adapter.h │ │ ├── boost_flat_set.h │ │ ├── boost_list.h │ │ ├── boost_set.h │ │ ├── boost_slist.h │ │ ├── boost_stable_vector.h │ │ ├── boost_unordered_set.h │ │ ├── boost_vector.h │ │ ├── std_hash_set.h │ │ ├── std_list.h │ │ ├── std_set.h │ │ └── std_vector.h │ ├── treiber_stack.h │ ├── vyukov_mpmc_cycle_queue.h │ └── weak_ringbuffer.h ├── details │ ├── aligned_allocator.h │ ├── aligned_type.h │ ├── allocator.h │ ├── binary_functor_wrapper.h │ ├── bit_reverse_counter.h │ ├── bitop_generic.h │ ├── bounded_container.h │ ├── defs.h │ ├── is_aligned.h │ ├── make_const_type.h │ ├── marked_ptr.h │ ├── size_t_cast.h │ ├── throw_exception.h │ └── type_padding.h ├── gc │ ├── default_gc.h │ ├── details │ │ ├── hp_common.h │ │ └── retired_ptr.h │ ├── dhp.h │ ├── hp.h │ ├── hp_membar.h │ └── nogc.h ├── init.h ├── intrusive │ ├── basket_queue.h │ ├── cuckoo_set.h │ ├── details │ │ ├── base.h │ │ ├── ellen_bintree_base.h │ │ ├── feldman_hashset_base.h │ │ ├── iterable_list_base.h │ │ ├── lazy_list_base.h │ │ ├── michael_list_base.h │ │ ├── michael_set_base.h │ │ ├── node_traits.h │ │ ├── raw_ptr_disposer.h │ │ ├── single_link_struct.h │ │ ├── skip_list_base.h │ │ └── split_list_base.h │ ├── ellen_bintree_dhp.h │ ├── ellen_bintree_hp.h │ ├── ellen_bintree_rcu.h │ ├── fcqueue.h │ ├── fcstack.h │ ├── feldman_hashset_dhp.h │ ├── feldman_hashset_hp.h │ ├── feldman_hashset_rcu.h │ ├── free_list.h │ ├── free_list_cached.h │ ├── free_list_selector.h │ ├── free_list_tagged.h │ ├── impl │ │ ├── ellen_bintree.h │ │ ├── feldman_hashset.h │ │ ├── iterable_list.h │ │ ├── lazy_list.h │ │ ├── michael_list.h │ │ └── skip_list.h │ ├── iterable_list_dhp.h │ ├── iterable_list_hp.h │ ├── lazy_list_dhp.h │ ├── lazy_list_hp.h │ ├── lazy_list_nogc.h │ ├── lazy_list_rcu.h │ ├── michael_list_dhp.h │ ├── michael_list_hp.h │ ├── michael_list_nogc.h │ ├── michael_list_rcu.h │ ├── michael_set.h │ ├── michael_set_nogc.h │ ├── michael_set_rcu.h │ ├── moir_queue.h │ ├── mspriority_queue.h │ ├── msqueue.h │ ├── optimistic_queue.h │ ├── options.h │ ├── segmented_queue.h │ ├── skip_list_dhp.h │ ├── skip_list_hp.h │ ├── skip_list_nogc.h │ ├── skip_list_rcu.h │ ├── split_list.h │ ├── split_list_nogc.h │ ├── split_list_rcu.h │ ├── striped_set.h │ ├── striped_set │ │ ├── adapter.h │ │ ├── boost_avl_set.h │ │ ├── boost_list.h │ │ ├── boost_set.h │ │ ├── boost_sg_set.h │ │ ├── boost_slist.h │ │ ├── boost_splay_set.h │ │ ├── boost_treap_set.h │ │ ├── boost_unordered_set.h │ │ ├── resizing_policy.h │ │ └── striping_policy.h │ ├── treiber_stack.h │ └── vyukov_mpmc_cycle_queue.h ├── lock │ ├── array.h │ └── spinlock.h ├── memory │ ├── pool_allocator.h │ └── vyukov_queue_pool.h ├── opt │ ├── buffer.h │ ├── compare.h │ ├── hash.h │ ├── options.h │ ├── permutation.h │ └── value_cleaner.h ├── os │ ├── aix │ │ ├── alloc_aligned.h │ │ ├── timer.h │ │ └── topology.h │ ├── alloc_aligned.h │ ├── details │ │ └── fake_topology.h │ ├── free_bsd │ │ ├── alloc_aligned.h │ │ ├── timer.h │ │ └── topology.h │ ├── hpux │ │ ├── alloc_aligned.h │ │ ├── timer.h │ │ └── topology.h │ ├── libc │ │ └── alloc_aligned.h │ ├── linux │ │ ├── alloc_aligned.h │ │ ├── timer.h │ │ └── topology.h │ ├── osx │ │ ├── timer.h │ │ └── topology.h │ ├── posix │ │ ├── alloc_aligned.h │ │ ├── fake_topology.h │ │ ├── thread.h │ │ └── timer.h │ ├── sunos │ │ ├── alloc_aligned.h │ │ ├── timer.h │ │ └── topology.h │ ├── thread.h │ ├── timer.h │ ├── topology.h │ └── win │ │ ├── alloc_aligned.h │ │ ├── thread.h │ │ ├── timer.h │ │ └── topology.h ├── sync │ ├── injecting_monitor.h │ ├── lock_array.h │ ├── monitor.h │ ├── pool_monitor.h │ └── spinlock.h ├── threading │ ├── details │ │ ├── _common.h │ │ ├── auto_detect.h │ │ ├── cxx11.h │ │ ├── cxx11_manager.h │ │ ├── gcc.h │ │ ├── gcc_manager.h │ │ ├── msvc.h │ │ ├── msvc_manager.h │ │ ├── pthread.h │ │ ├── pthread_manager.h │ │ ├── wintls.h │ │ └── wintls_manager.h │ └── model.h ├── urcu │ ├── details │ │ ├── base.h │ │ ├── check_deadlock.h │ │ ├── gp.h │ │ ├── gp_decl.h │ │ ├── gpb.h │ │ ├── gpi.h │ │ ├── gpt.h │ │ ├── sh.h │ │ ├── sh_decl.h │ │ └── sig_buffered.h │ ├── dispose_thread.h │ ├── exempt_ptr.h │ ├── general_buffered.h │ ├── general_instant.h │ ├── general_threaded.h │ ├── options.h │ ├── raw_ptr.h │ └── signal_buffered.h ├── user_setup │ ├── allocator.h │ ├── cache_line.h │ └── threading.h └── version.h ├── change.log ├── conanfile.txt ├── doxygen ├── cds.doxy ├── footer.html ├── image │ └── feldman_hashset.png ├── images.odp └── index.html ├── projects └── Win │ ├── build-msbuild.cmd │ ├── build-vc14.cmd │ └── vc141 │ ├── cds.sln │ ├── cds.vcxproj │ ├── cds.vcxproj.filters │ ├── gtest-deque.vcxproj │ ├── gtest-deque.vcxproj.filters │ ├── gtest-ilist-iterable.vcxproj │ ├── gtest-ilist-lazy.vcxproj │ ├── gtest-ilist-michael.vcxproj │ ├── gtest-iset-feldman.vcxproj │ ├── gtest-iset-michael-iterable.vcxproj │ ├── gtest-iset-michael-lazy.vcxproj │ ├── gtest-iset-michael.vcxproj │ ├── gtest-iset-skip.vcxproj │ ├── gtest-iset-split-iterable.vcxproj │ ├── gtest-iset-split-lazy.vcxproj │ ├── gtest-iset-split-michael.vcxproj │ ├── gtest-list-iterable.vcxproj │ ├── gtest-list-lazy.vcxproj │ ├── gtest-list-michael.vcxproj │ ├── gtest-map-feldman.vcxproj │ ├── gtest-map-michael-iterable.vcxproj │ ├── gtest-map-michael-lazy.vcxproj │ ├── gtest-map-michael.vcxproj │ ├── gtest-map-skip.vcxproj │ ├── gtest-map-split-iterable.vcxproj │ ├── gtest-map-split-lazy.vcxproj │ ├── gtest-map-split-michael.vcxproj │ ├── gtest-misc.vcxproj │ ├── gtest-misc.vcxproj.filters │ ├── gtest-pqueue.vcxproj │ ├── gtest-pqueue.vcxproj.filters │ ├── gtest-queue.vcxproj │ ├── gtest-queue.vcxproj.filters │ ├── gtest-set-feldman.vcxproj │ ├── gtest-set-michael-iterable.vcxproj │ ├── gtest-set-michael-lazy.vcxproj │ ├── gtest-set-michael.vcxproj │ ├── gtest-set-skip.vcxproj │ ├── gtest-set-split-iterable.vcxproj │ ├── gtest-set-split-lazy.vcxproj │ ├── gtest-set-split-michael.vcxproj │ ├── gtest-stack.vcxproj │ ├── gtest-stack.vcxproj.filters │ ├── gtest-striped-map-boost.vcxproj │ ├── gtest-striped-map-cuckoo.vcxproj │ ├── gtest-striped-map-std.vcxproj │ ├── gtest-striped-set-boost.vcxproj │ ├── gtest-striped-set-cuckoo.vcxproj │ ├── gtest-striped-set-std.vcxproj │ ├── gtest-tree-bronson.vcxproj │ ├── gtest-tree-ellen.vcxproj │ ├── gtest-tree-ellen.vcxproj.filters │ ├── stress-framework.vcxproj │ ├── stress-framework.vcxproj.filters │ ├── stress-freelist.vcxproj │ ├── stress-map-del3.vcxproj │ ├── stress-map-delodd.vcxproj │ ├── stress-map-find_string.vcxproj │ ├── stress-map-insdel-func.vcxproj │ ├── stress-map-insdel-item-int.vcxproj │ ├── stress-map-insdel-string.vcxproj │ ├── stress-map-insdelfind.vcxproj │ ├── stress-map-iter-erase.vcxproj │ ├── stress-map-minmax.vcxproj │ ├── stress-pqueue.vcxproj │ ├── stress-pqueue.vcxproj.filters │ ├── stress-queue-bounded.vcxproj │ ├── stress-queue-pop.vcxproj │ ├── stress-queue-push.vcxproj │ ├── stress-queue-pushpop.vcxproj │ ├── stress-queue-random.vcxproj │ ├── stress-set-del3.vcxproj │ ├── stress-set-delodd.vcxproj │ ├── stress-set-insdel_func.vcxproj │ ├── stress-set-insdel_string.vcxproj │ ├── stress-set-insdelfind.vcxproj │ ├── stress-set-iter-erase.vcxproj │ ├── stress-set-iteration.vcxproj │ ├── stress-spsc-queue.vcxproj │ ├── stress-stack.vcxproj │ └── stress-stack.vcxproj.filters ├── readme.md ├── src ├── dhp.cpp ├── dllmain.cpp ├── hp.cpp ├── hp_thread_local.cpp ├── init.cpp ├── thread_data.cpp ├── topology_hpux.cpp ├── topology_linux.cpp ├── topology_osx.cpp ├── urcu_gp.cpp └── urcu_sh.cpp ├── test ├── CMakeLists.txt ├── CMakeLists.txt.gtest ├── include │ └── cds_test │ │ ├── check_size.h │ │ ├── city.h │ │ ├── citycrc.h │ │ ├── ext_byteswap.h │ │ ├── ext_gtest.h │ │ ├── fc_hevy_value.h │ │ ├── fixture.h │ │ ├── hash_func.h │ │ ├── stat_bronson_avltree_out.h │ │ ├── stat_cuckoo_out.h │ │ ├── stat_dhp_out.h │ │ ├── stat_ellenbintree_out.h │ │ ├── stat_feldman_hashset_out.h │ │ ├── stat_flat_combining_out.h │ │ ├── stat_hp_out.h │ │ ├── stat_iterable_list_out.h │ │ ├── stat_lazy_list_out.h │ │ ├── stat_michael_list_out.h │ │ ├── stat_skiplist_out.h │ │ ├── stat_splitlist_out.h │ │ ├── stat_sync_monitor_out.h │ │ ├── stress_test.h │ │ └── thread.h ├── stress │ ├── CMakeLists.txt │ ├── data │ │ ├── split.pl │ │ ├── test-debug-gccfarm.conf │ │ ├── test-debug.conf │ │ ├── test-express-gccfarm.conf │ │ ├── test-express-x86.conf │ │ ├── test-express.conf │ │ ├── test-gccfarm.conf │ │ ├── test.conf │ │ └── text.txt │ ├── framework │ │ ├── city.cpp │ │ ├── city.h │ │ ├── citycrc.h │ │ ├── config.cpp │ │ ├── ellen_bintree_update_desc_pool.cpp │ │ ├── ellen_bintree_update_desc_pool.h │ │ └── stress_test.cpp │ ├── freelist │ │ ├── CMakeLists.txt │ │ ├── put_get.cpp │ │ └── put_get_single.cpp │ ├── lock │ │ └── win32_lock.h │ ├── main.cpp │ ├── map │ │ ├── CMakeLists.txt │ │ ├── del3 │ │ │ ├── CMakeLists.txt │ │ │ ├── map_del3.cpp │ │ │ ├── map_del3.h │ │ │ ├── map_del3_bronsonavltree.cpp │ │ │ ├── map_del3_cuckoo.cpp │ │ │ ├── map_del3_ellentree.cpp │ │ │ ├── map_del3_feldman_hashmap.cpp │ │ │ ├── map_del3_michael.cpp │ │ │ ├── map_del3_skip.cpp │ │ │ └── map_del3_split.cpp │ │ ├── delodd │ │ │ ├── CMakeLists.txt │ │ │ ├── map_delodd.cpp │ │ │ ├── map_delodd.h │ │ │ ├── map_delodd_bronsonavltree.cpp │ │ │ ├── map_delodd_cuckoo.cpp │ │ │ ├── map_delodd_ellentree.cpp │ │ │ ├── map_delodd_feldman_hashmap.cpp │ │ │ ├── map_delodd_michael.cpp │ │ │ ├── map_delodd_skip.cpp │ │ │ └── map_delodd_split.cpp │ │ ├── find_string │ │ │ ├── CMakeLists.txt │ │ │ ├── map_find_string.cpp │ │ │ ├── map_find_string.h │ │ │ ├── map_find_string_bronsonavltree.cpp │ │ │ ├── map_find_string_cuckoo.cpp │ │ │ ├── map_find_string_ellentree.cpp │ │ │ ├── map_find_string_feldman_hashset.cpp │ │ │ ├── map_find_string_michael.cpp │ │ │ ├── map_find_string_skip.cpp │ │ │ ├── map_find_string_split.cpp │ │ │ ├── map_find_string_std.cpp │ │ │ └── map_find_string_striped.cpp │ │ ├── insdel_func │ │ │ ├── CMakeLists.txt │ │ │ ├── map_insdel_func.cpp │ │ │ ├── map_insdel_func.h │ │ │ ├── map_insdel_func_bronsonavltree.cpp │ │ │ ├── map_insdel_func_cuckoo.cpp │ │ │ ├── map_insdel_func_ellentree.cpp │ │ │ ├── map_insdel_func_feldman_hashset.cpp │ │ │ ├── map_insdel_func_michael.cpp │ │ │ ├── map_insdel_func_skip.cpp │ │ │ ├── map_insdel_func_split.cpp │ │ │ └── map_insdel_func_striped.cpp │ │ ├── insdel_item_int │ │ │ ├── CMakeLists.txt │ │ │ ├── map_insdel_item_int.cpp │ │ │ ├── map_insdel_item_int.h │ │ │ ├── map_insdel_item_int_bronsonavltree.cpp │ │ │ ├── map_insdel_item_int_cuckoo.cpp │ │ │ ├── map_insdel_item_int_ellentree.cpp │ │ │ ├── map_insdel_item_int_feldman_hashset.cpp │ │ │ ├── map_insdel_item_int_michael.cpp │ │ │ ├── map_insdel_item_int_skip.cpp │ │ │ ├── map_insdel_item_int_split.cpp │ │ │ └── map_insdel_item_int_striped.cpp │ │ ├── insdel_string │ │ │ ├── CMakeLists.txt │ │ │ ├── map_insdel_string.cpp │ │ │ ├── map_insdel_string.h │ │ │ ├── map_insdel_string_bronsonavltree.cpp │ │ │ ├── map_insdel_string_cuckoo.cpp │ │ │ ├── map_insdel_string_ellentree.cpp │ │ │ ├── map_insdel_string_feldman_hashset.cpp │ │ │ ├── map_insdel_string_michael.cpp │ │ │ ├── map_insdel_string_skip.cpp │ │ │ ├── map_insdel_string_split.cpp │ │ │ ├── map_insdel_string_std.cpp │ │ │ └── map_insdel_string_striped.cpp │ │ ├── insdelfind │ │ │ ├── CMakeLists.txt │ │ │ ├── map_insdelfind.cpp │ │ │ ├── map_insdelfind.h │ │ │ ├── map_insdelfind_bronsonavltree.cpp │ │ │ ├── map_insdelfind_cuckoo.cpp │ │ │ ├── map_insdelfind_ellentree_hp.cpp │ │ │ ├── map_insdelfind_ellentree_rcu.cpp │ │ │ ├── map_insdelfind_feldman_hashset_hp.cpp │ │ │ ├── map_insdelfind_feldman_hashset_rcu.cpp │ │ │ ├── map_insdelfind_michael_hp.cpp │ │ │ ├── map_insdelfind_michael_rcu.cpp │ │ │ ├── map_insdelfind_skip_hp.cpp │ │ │ ├── map_insdelfind_skip_rcu.cpp │ │ │ ├── map_insdelfind_split_hp.cpp │ │ │ ├── map_insdelfind_split_rcu.cpp │ │ │ ├── map_insdelfind_std.cpp │ │ │ └── map_insdelfind_striped.cpp │ │ ├── iter_erase │ │ │ ├── CMakeLists.txt │ │ │ ├── map_iter_erase.cpp │ │ │ ├── map_iter_erase.h │ │ │ ├── map_iter_erase_feldman_hashmap.cpp │ │ │ ├── map_iter_erase_michael.cpp │ │ │ └── map_iter_erase_split.cpp │ │ ├── map_type.h │ │ ├── map_type_bronson_avltree.h │ │ ├── map_type_cuckoo.h │ │ ├── map_type_ellen_bintree.h │ │ ├── map_type_feldman_hashmap.h │ │ ├── map_type_iterable_list.h │ │ ├── map_type_lazy_list.h │ │ ├── map_type_michael.h │ │ ├── map_type_michael_list.h │ │ ├── map_type_skip_list.h │ │ ├── map_type_split_list.h │ │ ├── map_type_std.h │ │ ├── map_type_striped.h │ │ └── minmax │ │ │ ├── CMakeLists.txt │ │ │ ├── map_minmax.cpp │ │ │ ├── map_minmax.h │ │ │ ├── map_minmax_bronsonavltree.cpp │ │ │ ├── map_minmax_ellentree.cpp │ │ │ └── map_minmax_skip.cpp │ ├── pqueue │ │ ├── CMakeLists.txt │ │ ├── item.h │ │ ├── pop.cpp │ │ ├── pqueue_type.h │ │ ├── push.cpp │ │ └── push_pop.cpp │ ├── queue │ │ ├── CMakeLists.txt │ │ ├── bounded_queue_fulness.cpp │ │ ├── intrusive_push_pop.cpp │ │ ├── intrusive_queue_type.h │ │ ├── pop.cpp │ │ ├── print_stat.h │ │ ├── push.cpp │ │ ├── push_pop.cpp │ │ ├── queue_type.h │ │ ├── random.cpp │ │ ├── spsc_buffer.cpp │ │ ├── spsc_queue.cpp │ │ └── std_queue.h │ ├── set │ │ ├── CMakeLists.txt │ │ ├── del3 │ │ │ ├── CMakeLists.txt │ │ │ ├── set_del3.cpp │ │ │ ├── set_del3.h │ │ │ ├── set_del3_cuckoo.cpp │ │ │ ├── set_del3_ellentree.cpp │ │ │ ├── set_del3_feldman_hashset.cpp │ │ │ ├── set_del3_michael.cpp │ │ │ ├── set_del3_skip.cpp │ │ │ └── set_del3_split.cpp │ │ ├── delodd │ │ │ ├── CMakeLists.txt │ │ │ ├── set_delodd.cpp │ │ │ ├── set_delodd.h │ │ │ ├── set_delodd_cuckoo.cpp │ │ │ ├── set_delodd_ellentree.cpp │ │ │ ├── set_delodd_feldman_hashset.cpp │ │ │ ├── set_delodd_michael.cpp │ │ │ ├── set_delodd_skip.cpp │ │ │ └── set_delodd_split.cpp │ │ ├── insdel_find │ │ │ ├── CMakeLists.txt │ │ │ ├── set_insdelfind.cpp │ │ │ ├── set_insdelfind.h │ │ │ ├── set_insdelfind_cuckoo.cpp │ │ │ ├── set_insdelfind_ellentree_hp.cpp │ │ │ ├── set_insdelfind_ellentree_rcu.cpp │ │ │ ├── set_insdelfind_feldman_hashset_hp.cpp │ │ │ ├── set_insdelfind_feldman_hashset_rcu.cpp │ │ │ ├── set_insdelfind_michael_hp.cpp │ │ │ ├── set_insdelfind_michael_rcu.cpp │ │ │ ├── set_insdelfind_skip_hp.cpp │ │ │ ├── set_insdelfind_skip_rcu.cpp │ │ │ ├── set_insdelfind_split_hp.cpp │ │ │ ├── set_insdelfind_split_rcu.cpp │ │ │ ├── set_insdelfind_std.cpp │ │ │ └── set_insdelfind_striped.cpp │ │ ├── insdel_func │ │ │ ├── CMakeLists.txt │ │ │ ├── set_insdel_func.cpp │ │ │ ├── set_insdel_func.h │ │ │ ├── set_insdel_func_cuckoo.cpp │ │ │ ├── set_insdel_func_ellentree.cpp │ │ │ ├── set_insdel_func_feldman_hashset.cpp │ │ │ ├── set_insdel_func_michael.cpp │ │ │ ├── set_insdel_func_skip.cpp │ │ │ ├── set_insdel_func_split.cpp │ │ │ └── set_insdel_func_striped.cpp │ │ ├── insdel_string │ │ │ ├── CMakeLists.txt │ │ │ ├── set_insdel_string.cpp │ │ │ ├── set_insdel_string.h │ │ │ ├── set_insdel_string_cuckoo.cpp │ │ │ ├── set_insdel_string_ellentree.cpp │ │ │ ├── set_insdel_string_feldman_hashset.cpp │ │ │ ├── set_insdel_string_michael.cpp │ │ │ ├── set_insdel_string_skip.cpp │ │ │ ├── set_insdel_string_split.cpp │ │ │ ├── set_insdel_string_std.cpp │ │ │ └── set_insdel_string_striped.cpp │ │ ├── iter_erase │ │ │ ├── CMakeLists.txt │ │ │ ├── set_iter_erase.cpp │ │ │ ├── set_iter_erase.h │ │ │ ├── set_iter_erase_feldman_hashset.cpp │ │ │ ├── set_iter_erase_michael.cpp │ │ │ └── set_iter_erase_split.cpp │ │ ├── iteration │ │ │ ├── CMakeLists.txt │ │ │ ├── set_iteration.cpp │ │ │ ├── set_iteration.h │ │ │ ├── set_iteration_feldman_hashset.cpp │ │ │ ├── set_iteration_michael.cpp │ │ │ └── set_iteration_split.cpp │ │ ├── set_type.h │ │ ├── set_type_cuckoo.h │ │ ├── set_type_ellen_bintree.h │ │ ├── set_type_feldman_hashset.h │ │ ├── set_type_iterable_list.h │ │ ├── set_type_lazy_list.h │ │ ├── set_type_michael.h │ │ ├── set_type_michael_list.h │ │ ├── set_type_skip_list.h │ │ ├── set_type_split_list.h │ │ ├── set_type_std.h │ │ └── set_type_striped.h │ └── stack │ │ ├── CMakeLists.txt │ │ ├── intrusive_push_pop.cpp │ │ ├── intrusive_push_pop_fcstack.cpp │ │ ├── intrusive_stack_push_pop.h │ │ ├── intrusive_stack_type.h │ │ ├── push.cpp │ │ ├── push_pop.cpp │ │ └── stack_type.h └── unit │ ├── CMakeLists.txt │ ├── deque │ ├── CMakeLists.txt │ └── fcdeque.cpp │ ├── intrusive-list │ ├── CMakeLists.txt │ ├── intrusive_iterable_dhp.cpp │ ├── intrusive_iterable_hp.cpp │ ├── intrusive_lazy_dhp.cpp │ ├── intrusive_lazy_hp.cpp │ ├── intrusive_lazy_nogc.cpp │ ├── intrusive_lazy_rcu_gpb.cpp │ ├── intrusive_lazy_rcu_gpi.cpp │ ├── intrusive_lazy_rcu_gpt.cpp │ ├── intrusive_lazy_rcu_shb.cpp │ ├── intrusive_michael_dhp.cpp │ ├── intrusive_michael_hp.cpp │ ├── intrusive_michael_nogc.cpp │ ├── intrusive_michael_rcu_gpb.cpp │ ├── intrusive_michael_rcu_gpi.cpp │ ├── intrusive_michael_rcu_gpt.cpp │ ├── intrusive_michael_rcu_shb.cpp │ ├── test_intrusive_iterable_list.h │ ├── test_intrusive_iterable_list_hp.h │ ├── test_intrusive_lazy_rcu.h │ ├── test_intrusive_list.h │ ├── test_intrusive_list_hp.h │ ├── test_intrusive_list_nogc.h │ ├── test_intrusive_list_rcu.h │ └── test_intrusive_michael_rcu.h │ ├── intrusive-set │ ├── CMakeLists.txt │ ├── intrusive_feldman_hashset_dhp.cpp │ ├── intrusive_feldman_hashset_hp.cpp │ ├── intrusive_feldman_hashset_rcu_gpb.cpp │ ├── intrusive_feldman_hashset_rcu_gpi.cpp │ ├── intrusive_feldman_hashset_rcu_gpt.cpp │ ├── intrusive_feldman_hashset_rcu_shb.cpp │ ├── intrusive_michael_iterable_dhp.cpp │ ├── intrusive_michael_iterable_hp.cpp │ ├── intrusive_michael_lazy_dhp.cpp │ ├── intrusive_michael_lazy_hp.cpp │ ├── intrusive_michael_lazy_nogc.cpp │ ├── intrusive_michael_lazy_rcu_gpb.cpp │ ├── intrusive_michael_lazy_rcu_gpi.cpp │ ├── intrusive_michael_lazy_rcu_gpt.cpp │ ├── intrusive_michael_lazy_rcu_shb.cpp │ ├── intrusive_michael_michael_dhp.cpp │ ├── intrusive_michael_michael_hp.cpp │ ├── intrusive_michael_michael_nogc.cpp │ ├── intrusive_michael_michael_rcu_gpb.cpp │ ├── intrusive_michael_michael_rcu_gpi.cpp │ ├── intrusive_michael_michael_rcu_gpt.cpp │ ├── intrusive_michael_michael_rcu_shb.cpp │ ├── intrusive_skiplist_dhp.cpp │ ├── intrusive_skiplist_hp.cpp │ ├── intrusive_skiplist_nogc.cpp │ ├── intrusive_skiplist_rcu_gpb.cpp │ ├── intrusive_skiplist_rcu_gpi.cpp │ ├── intrusive_skiplist_rcu_gpt.cpp │ ├── intrusive_skiplist_rcu_shb.cpp │ ├── intrusive_split_iterable_dhp.cpp │ ├── intrusive_split_iterable_hp.cpp │ ├── intrusive_split_lazy_dhp.cpp │ ├── intrusive_split_lazy_hp.cpp │ ├── intrusive_split_lazy_nogc.cpp │ ├── intrusive_split_lazy_rcu_gpb.cpp │ ├── intrusive_split_lazy_rcu_gpi.cpp │ ├── intrusive_split_lazy_rcu_gpt.cpp │ ├── intrusive_split_lazy_rcu_shb.cpp │ ├── intrusive_split_michael_dhp.cpp │ ├── intrusive_split_michael_hp.cpp │ ├── intrusive_split_michael_nogc.cpp │ ├── intrusive_split_michael_rcu_gpb.cpp │ ├── intrusive_split_michael_rcu_gpi.cpp │ ├── intrusive_split_michael_rcu_gpt.cpp │ ├── intrusive_split_michael_rcu_shb.cpp │ ├── test_intrusive_feldman_hashset.h │ ├── test_intrusive_feldman_hashset_hp.h │ ├── test_intrusive_feldman_hashset_rcu.h │ ├── test_intrusive_michael_iterable.h │ ├── test_intrusive_michael_iterable_hp.h │ ├── test_intrusive_michael_lazy_rcu.h │ ├── test_intrusive_michael_michael_rcu.h │ ├── test_intrusive_set.h │ ├── test_intrusive_set_hp.h │ ├── test_intrusive_set_nogc.h │ ├── test_intrusive_set_rcu.h │ ├── test_intrusive_skiplist_rcu.h │ ├── test_intrusive_split_iterable_set.h │ ├── test_intrusive_split_iterable_set_hp.h │ ├── test_intrusive_split_lazy_rcu.h │ └── test_intrusive_split_michael_rcu.h │ ├── list │ ├── CMakeLists.txt │ ├── iterable_dhp.cpp │ ├── iterable_hp.cpp │ ├── kv_iterable_dhp.cpp │ ├── kv_iterable_hp.cpp │ ├── kv_lazy_dhp.cpp │ ├── kv_lazy_hp.cpp │ ├── kv_lazy_nogc.cpp │ ├── kv_lazy_rcu_gpb.cpp │ ├── kv_lazy_rcu_gpi.cpp │ ├── kv_lazy_rcu_gpt.cpp │ ├── kv_lazy_rcu_shb.cpp │ ├── kv_michael_dhp.cpp │ ├── kv_michael_hp.cpp │ ├── kv_michael_nogc.cpp │ ├── kv_michael_rcu_gpb.cpp │ ├── kv_michael_rcu_gpi.cpp │ ├── kv_michael_rcu_gpt.cpp │ ├── kv_michael_rcu_shb.cpp │ ├── lazy_dhp.cpp │ ├── lazy_hp.cpp │ ├── lazy_nogc.cpp │ ├── lazy_rcu_gpb.cpp │ ├── lazy_rcu_gpi.cpp │ ├── lazy_rcu_gpt.cpp │ ├── lazy_rcu_shb.cpp │ ├── michael_dhp.cpp │ ├── michael_hp.cpp │ ├── michael_nogc.cpp │ ├── michael_rcu_gpb.cpp │ ├── michael_rcu_gpi.cpp │ ├── michael_rcu_gpt.cpp │ ├── michael_rcu_shb.cpp │ ├── test_iterable_list.h │ ├── test_iterable_list_hp.h │ ├── test_kv_iterable_list.h │ ├── test_kv_iterable_list_hp.h │ ├── test_kv_lazy_rcu.h │ ├── test_kv_list.h │ ├── test_kv_list_hp.h │ ├── test_kv_list_nogc.h │ ├── test_kv_list_rcu.h │ ├── test_kv_michael_rcu.h │ ├── test_lazy_rcu.h │ ├── test_list.h │ ├── test_list_hp.h │ ├── test_list_nogc.h │ ├── test_list_rcu.h │ └── test_michael_rcu.h │ ├── main.cpp │ ├── map │ ├── CMakeLists.txt │ ├── feldman_hashmap_dhp.cpp │ ├── feldman_hashmap_hp.cpp │ ├── feldman_hashset_rcu_gpb.cpp │ ├── feldman_hashset_rcu_gpi.cpp │ ├── feldman_hashset_rcu_gpt.cpp │ ├── feldman_hashset_rcu_shb.cpp │ ├── michael_iterable_dhp.cpp │ ├── michael_iterable_hp.cpp │ ├── michael_lazy_dhp.cpp │ ├── michael_lazy_hp.cpp │ ├── michael_lazy_nogc.cpp │ ├── michael_lazy_rcu_gpb.cpp │ ├── michael_lazy_rcu_gpi.cpp │ ├── michael_lazy_rcu_gpt.cpp │ ├── michael_lazy_rcu_shb.cpp │ ├── michael_michael_dhp.cpp │ ├── michael_michael_hp.cpp │ ├── michael_michael_nogc.cpp │ ├── michael_michael_rcu_gpb.cpp │ ├── michael_michael_rcu_gpi.cpp │ ├── michael_michael_rcu_gpt.cpp │ ├── michael_michael_rcu_shb.cpp │ ├── skiplist_dhp.cpp │ ├── skiplist_hp.cpp │ ├── skiplist_hp_inl.h │ ├── skiplist_nogc.cpp │ ├── skiplist_rcu_gpb.cpp │ ├── skiplist_rcu_gpi.cpp │ ├── skiplist_rcu_gpt.cpp │ ├── skiplist_rcu_shb.cpp │ ├── split_iterable_dhp.cpp │ ├── split_iterable_hp.cpp │ ├── split_lazy_dhp.cpp │ ├── split_lazy_hp.cpp │ ├── split_lazy_nogc.cpp │ ├── split_lazy_rcu_gpb.cpp │ ├── split_lazy_rcu_gpi.cpp │ ├── split_lazy_rcu_gpt.cpp │ ├── split_lazy_rcu_shb.cpp │ ├── split_michael_dhp.cpp │ ├── split_michael_hp.cpp │ ├── split_michael_nogc.cpp │ ├── split_michael_rcu_gpb.cpp │ ├── split_michael_rcu_gpi.cpp │ ├── split_michael_rcu_gpt.cpp │ ├── split_michael_rcu_shb.cpp │ ├── test_feldman_hashmap.h │ ├── test_feldman_hashmap_hp.h │ ├── test_feldman_hashmap_rcu.h │ ├── test_map.h │ ├── test_map_data.h │ ├── test_map_hp.h │ ├── test_map_nogc.h │ ├── test_map_rcu.h │ ├── test_michael_iterable.h │ ├── test_michael_iterable_hp.h │ ├── test_michael_lazy_rcu.h │ ├── test_michael_michael_rcu.h │ ├── test_skiplist_hp.h │ ├── test_skiplist_rcu.h │ ├── test_split_lazy_rcu.h │ └── test_split_michael_rcu.h │ ├── misc │ ├── CMakeLists.txt │ ├── asan_errors.cpp │ ├── bit_reversal.cpp │ ├── bitop.cpp │ ├── cxx11_atomic_class.cpp │ ├── cxx11_atomic_func.cpp │ ├── cxx11_convert_memory_order.h │ ├── find_option.cpp │ ├── hash_tuple.cpp │ ├── permutation_generator.cpp │ └── split_bitstring.cpp │ ├── pqueue │ ├── CMakeLists.txt │ ├── fcpqueue_boost_stable_vector.cpp │ ├── fcpqueue_deque.cpp │ ├── fcpqueue_vector.cpp │ ├── intrusive_mspqueue.cpp │ ├── mspqueue.cpp │ ├── test_data.h │ └── test_fcpqueue.h │ ├── queue │ ├── CMakeLists.txt │ ├── basket_queue_dhp.cpp │ ├── basket_queue_hp.cpp │ ├── fcqueue.cpp │ ├── intrusive_basket_queue_dhp.cpp │ ├── intrusive_basket_queue_hp.cpp │ ├── intrusive_fcqueue.cpp │ ├── intrusive_moirqueue_dhp.cpp │ ├── intrusive_moirqueue_hp.cpp │ ├── intrusive_msqueue_dhp.cpp │ ├── intrusive_msqueue_hp.cpp │ ├── intrusive_optqueue_dhp.cpp │ ├── intrusive_optqueue_hp.cpp │ ├── intrusive_segmented_queue_dhp.cpp │ ├── intrusive_segmented_queue_hp.cpp │ ├── intrusive_vyukov_queue.cpp │ ├── moirqueue_dhp.cpp │ ├── moirqueue_hp.cpp │ ├── msqueue_dhp.cpp │ ├── msqueue_hp.cpp │ ├── optimistic_queue_dhp.cpp │ ├── optimistic_queue_hp.cpp │ ├── rwqueue.cpp │ ├── segmented_queue_dhp.cpp │ ├── segmented_queue_hp.cpp │ ├── test_bounded_queue.h │ ├── test_generic_queue.h │ ├── test_intrusive_bounded_queue.h │ ├── test_intrusive_msqueue.h │ ├── test_intrusive_segmented_queue.h │ ├── test_segmented_queue.h │ ├── vyukov_mpmc_queue.cpp │ └── weak_ringbuffer.cpp │ ├── set │ ├── CMakeLists.txt │ ├── feldman_hashset_dhp.cpp │ ├── feldman_hashset_hp.cpp │ ├── feldman_hashset_rcu_gpb.cpp │ ├── feldman_hashset_rcu_gpi.cpp │ ├── feldman_hashset_rcu_gpt.cpp │ ├── feldman_hashset_rcu_shb.cpp │ ├── michael_iterable_dhp.cpp │ ├── michael_iterable_hp.cpp │ ├── michael_lazy_dhp.cpp │ ├── michael_lazy_hp.cpp │ ├── michael_lazy_nogc.cpp │ ├── michael_lazy_rcu_gpb.cpp │ ├── michael_lazy_rcu_gpi.cpp │ ├── michael_lazy_rcu_gpt.cpp │ ├── michael_lazy_rcu_shb.cpp │ ├── michael_michael_dhp.cpp │ ├── michael_michael_hp.cpp │ ├── michael_michael_nogc.cpp │ ├── michael_michael_rcu_gpb.cpp │ ├── michael_michael_rcu_gpi.cpp │ ├── michael_michael_rcu_gpt.cpp │ ├── michael_michael_rcu_shb.cpp │ ├── skiplist_dhp.cpp │ ├── skiplist_hp.cpp │ ├── skiplist_hp_inl.h │ ├── skiplist_nogc.cpp │ ├── skiplist_rcu_gpb.cpp │ ├── skiplist_rcu_gpi.cpp │ ├── skiplist_rcu_gpt.cpp │ ├── skiplist_rcu_shb.cpp │ ├── split_iterable_dhp.cpp │ ├── split_iterable_hp.cpp │ ├── split_lazy_dhp.cpp │ ├── split_lazy_hp.cpp │ ├── split_lazy_nogc.cpp │ ├── split_lazy_rcu_gpb.cpp │ ├── split_lazy_rcu_gpi.cpp │ ├── split_lazy_rcu_gpt.cpp │ ├── split_lazy_rcu_shb.cpp │ ├── split_michael_dhp.cpp │ ├── split_michael_hp.cpp │ ├── split_michael_nogc.cpp │ ├── split_michael_rcu_gpb.cpp │ ├── split_michael_rcu_gpi.cpp │ ├── split_michael_rcu_gpt.cpp │ ├── split_michael_rcu_shb.cpp │ ├── test_feldman_hashset.h │ ├── test_feldman_hashset_hp.h │ ├── test_feldman_hashset_rcu.h │ ├── test_michael_iterable.h │ ├── test_michael_iterable_hp.h │ ├── test_michael_lazy_rcu.h │ ├── test_michael_michael_rcu.h │ ├── test_ordered_set_hp.h │ ├── test_set.h │ ├── test_set_data.h │ ├── test_set_hp.h │ ├── test_set_nogc.h │ ├── test_set_rcu.h │ ├── test_skiplist_rcu.h │ ├── test_split_iterable.h │ ├── test_split_iterable_hp.h │ ├── test_split_lazy_rcu.h │ └── test_split_michael_rcu.h │ ├── stack │ ├── CMakeLists.txt │ ├── fcstack.cpp │ ├── intrusive_fcstack.cpp │ ├── intrusive_treiber_stack_custom_hp.cpp │ ├── intrusive_treiber_stack_dhp.cpp │ ├── intrusive_treiber_stack_hp.cpp │ ├── test_intrusive_treiber_stack.h │ ├── test_treiber_stack.h │ ├── treiber_stack_dhp.cpp │ └── treiber_stack_hp.cpp │ ├── striped-map │ ├── CMakeLists.txt │ ├── cuckoo_map.cpp │ ├── map_boost_flat_map.cpp │ ├── map_boost_list.cpp │ ├── map_boost_map.cpp │ ├── map_boost_slist.cpp │ ├── map_boost_unordered_map.cpp │ ├── map_std_list.cpp │ ├── map_std_map.cpp │ ├── map_std_unordered_map.cpp │ ├── test_map.h │ ├── test_map_data.h │ └── test_striped_map.h │ ├── striped-set │ ├── CMakeLists.txt │ ├── cuckoo_set.cpp │ ├── intrusive_boost_avl_set.cpp │ ├── intrusive_boost_list.cpp │ ├── intrusive_boost_set.cpp │ ├── intrusive_boost_sg_set.cpp │ ├── intrusive_boost_slist.cpp │ ├── intrusive_boost_splay_set.cpp │ ├── intrusive_boost_treap_set.cpp │ ├── intrusive_boost_unordered_set.cpp │ ├── intrusive_cuckoo_set.cpp │ ├── set_boost_flatset.cpp │ ├── set_boost_list.cpp │ ├── set_boost_set.cpp │ ├── set_boost_slist.cpp │ ├── set_boost_stable_vector.cpp │ ├── set_boost_unordered_set.cpp │ ├── set_boost_vector.cpp │ ├── set_std_list.cpp │ ├── set_std_set.cpp │ ├── set_std_unordered_set.cpp │ ├── set_std_vector.cpp │ ├── test_intrusive_set.h │ ├── test_intrusive_striped_set.h │ ├── test_set.h │ └── test_striped_set.h │ └── tree │ ├── CMakeLists.txt │ ├── bronson_avltree_map_ptr_rcu_gpb.cpp │ ├── bronson_avltree_map_ptr_rcu_gpi.cpp │ ├── bronson_avltree_map_ptr_rcu_gpt.cpp │ ├── bronson_avltree_map_ptr_rcu_shb.cpp │ ├── bronson_avltree_map_rcu_gpb.cpp │ ├── bronson_avltree_map_rcu_gpi.cpp │ ├── bronson_avltree_map_rcu_gpt.cpp │ ├── bronson_avltree_map_rcu_shb.cpp │ ├── ellen_bintree_map_dhp.cpp │ ├── ellen_bintree_map_hp.cpp │ ├── ellen_bintree_map_rcu_gpb.cpp │ ├── ellen_bintree_map_rcu_gpi.cpp │ ├── ellen_bintree_map_rcu_gpt.cpp │ ├── ellen_bintree_map_rcu_shb.cpp │ ├── ellen_bintree_set_dhp.cpp │ ├── ellen_bintree_set_hp.cpp │ ├── ellen_bintree_set_rcu_gpb.cpp │ ├── ellen_bintree_set_rcu_gpi.cpp │ ├── ellen_bintree_set_rcu_gpt.cpp │ ├── ellen_bintree_set_rcu_shb.cpp │ ├── ellen_bintree_update_desc_pool.cpp │ ├── intrusive_ellenbintree_dhp.cpp │ ├── intrusive_ellenbintree_hp.cpp │ ├── intrusive_ellenbintree_rcu_gpb.cpp │ ├── intrusive_ellenbintree_rcu_gpi.cpp │ ├── intrusive_ellenbintree_rcu_gpt.cpp │ ├── intrusive_ellenbintree_rcu_shb.cpp │ ├── test_bronson_avltree_map.h │ ├── test_bronson_avltree_map_ptr.h │ ├── test_ellen_bintree_map_rcu.h │ ├── test_ellen_bintree_set_rcu.h │ ├── test_ellen_bintree_update_desc_pool.h │ ├── test_intrusive_ellen_bintree_rcu.h │ ├── test_intrusive_tree.h │ ├── test_intrusive_tree_hp.h │ ├── test_intrusive_tree_rcu.h │ ├── test_tree_map.h │ ├── test_tree_map_data.h │ ├── test_tree_map_hp.h │ ├── test_tree_map_rcu.h │ ├── test_tree_set.h │ ├── test_tree_set_hp.h │ └── test_tree_set_rcu.h ├── thanks └── tools ├── brush_cds.pl ├── make_distrib.bat ├── make_distrib.pl ├── make_docs.bat └── tsan-suppression /.gitignore: -------------------------------------------------------------------------------- 1 | /doc 2 | /sandbox 3 | *.o 4 | *.d 5 | /bin 6 | /obj 7 | /projects/Win/vc14/cds.sdf 8 | /projects/Win/vc14/cds.v14.suo 9 | /projects/Win/vc14/*.user 10 | /projects/Win/vc14/*.opensdf 11 | /projects/Win/vc14/.vs/ 12 | /projects/Win/vc141/.vs/ 13 | /projects/Win/vc141/*.user 14 | *.log 15 | /.project 16 | /projects/Win/vc14/*.opendb 17 | /test/stress/data/dictionary.txt 18 | /projects/Win/vc14/cds.VC.db 19 | /.cproject 20 | /.settings/ 21 | /tools/change_license.pl 22 | -------------------------------------------------------------------------------- /build/CI/travis-ci/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | set -x 5 | 6 | if [[ "$(uname -s)" == 'Darwin' ]]; then 7 | brew update || brew update 8 | brew outdated pyenv || brew upgrade pyenv 9 | brew install pyenv-virtualenv 10 | brew install cmake || true 11 | 12 | if which pyenv > /dev/null; then 13 | eval "$(pyenv init -)" 14 | fi 15 | 16 | pyenv install 2.7.10 17 | pyenv virtualenv 2.7.10 conan 18 | pyenv rehash 19 | pyenv activate conan 20 | 21 | pip install conan --upgrade 22 | pip install conan_package_tools 23 | 24 | conan user 25 | exit 0 26 | fi 27 | 28 | pip install --user conan --upgrade 29 | pip install --user conan_package_tools 30 | 31 | conan user 32 | -------------------------------------------------------------------------------- /build/CI/vasex/AmdEpyc79-clang10-rel: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | CLANG_ROOT=/opt/clang-10 4 | PATH=$CLANG_ROOT/bin:$PATH 5 | LD_LIBRARY_PATH=$CLANG_ROOT/lib:$LD_LIBRARY_PATH 6 | 7 | cmake -G "Unix Makefiles" \ 8 | -DCMAKE_BUILD_TYPE=RELEASE \ 9 | -DCMAKE_C_COMPILER=clang-10 \ 10 | -DCMAKE_CXX_COMPILER=clang-10 \ 11 | -DLIBCDS_CXX_STANDARD=17 \ 12 | -DCMAKE_CXX_FLAGS="-stdlib=libc++ -march=native -DCDS_RELEASE_ASSERT -g" \ 13 | -DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=lld -Wl,-rpath=$CLANG_ROOT/lib -lc++ -lc++abi" \ 14 | -DLIBCDS_WITH_TESTS=ON \ 15 | ../source 16 | make -j 32 $* 17 | -------------------------------------------------------------------------------- /build/CI/vasex/AmdEpyc79-clang9-rel: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | CLANG_ROOT=/opt/clang-9 4 | PATH=$CLANG_ROOT/bin:$PATH 5 | LD_LIBRARY_PATH=$CLANG_ROOT/lib:$LD_LIBRARY_PATH 6 | 7 | cmake -G "Unix Makefiles" \ 8 | -DCMAKE_BUILD_TYPE=RELEASE \ 9 | -DCMAKE_C_COMPILER=clang-9 \ 10 | -DCMAKE_CXX_COMPILER=clang-9 \ 11 | -DLIBCDS_CXX_STANDARD=17 \ 12 | -DCMAKE_CXX_FLAGS="-stdlib=libc++ -march=native -DCDS_RELEASE_ASSERT -g" \ 13 | -DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=lld -Wl,-rpath=$CLANG_ROOT/lib -lc++ -lc++abi" \ 14 | -DLIBCDS_WITH_TESTS=ON \ 15 | ../source 16 | make -j 32 $* 17 | -------------------------------------------------------------------------------- /build/CI/vasex/AmdEpyc79-gcc10-rel: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | GCC_ROOT=/opt/gcc-10 4 | PATH=$GCC_ROOT/bin:$PATH 5 | LD_LIBRARY_PATH=$GCC_ROOT/lib64:$LD_LIBRARY_PATH 6 | 7 | cmake -G "Unix Makefiles" \ 8 | -DCMAKE_BUILD_TYPE=RELEASE \ 9 | -DCMAKE_C_COMPILER=gcc-10 \ 10 | -DCMAKE_CXX_COMPILER=g++-10 \ 11 | -DLIBCDS_CXX_STANDARD=17 \ 12 | -DCMAKE_CXX_FLAGS="-march=native -Wmultistatement-macros -DCDS_RELEASE_ASSERT -g" \ 13 | -DCMAKE_EXE_LINKER_FLAGS="-Wl,-rpath=$GCC_ROOT/lib64" \ 14 | -DLIBCDS_WITH_TESTS=ON \ 15 | ../source 16 | make -j 32 $* 17 | -------------------------------------------------------------------------------- /build/CI/vasex/AmdEpyc79-gcc8-rel: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cmake -G "Unix Makefiles" \ 4 | -DCMAKE_BUILD_TYPE=RELEASE \ 5 | -DCMAKE_C_COMPILER=gcc \ 6 | -DCMAKE_CXX_COMPILER=g++ \ 7 | -DLIBCDS_CXX_STANDARD=17 \ 8 | -DCMAKE_CXX_FLAGS="-march=native -Wmultistatement-macros -DCDS_RELEASE_ASSERT -g" \ 9 | -DLIBCDS_WITH_TESTS=ON \ 10 | ../source 11 | make -j 32 $* 12 | -------------------------------------------------------------------------------- /build/CI/vasex/AmdEpyc79-gcc9-rel: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | GCC_ROOT=/opt/gcc-9 4 | PATH=$GCC_ROOT/bin:$PATH 5 | LD_LIBRARY_PATH=$GCC_ROOT/lib64:$LD_LIBRARY_PATH 6 | 7 | cmake -G "Unix Makefiles" \ 8 | -DCMAKE_BUILD_TYPE=RELEASE \ 9 | -DCMAKE_C_COMPILER=gcc-9 \ 10 | -DCMAKE_CXX_COMPILER=g++-9 \ 11 | -DLIBCDS_CXX_STANDARD=17 \ 12 | -DCMAKE_CXX_FLAGS="-march=native -Wmultistatement-macros -DCDS_RELEASE_ASSERT -g" \ 13 | -DCMAKE_EXE_LINKER_FLAGS="-Wl,-rpath=$GCC_ROOT/lib64" \ 14 | -DLIBCDS_WITH_TESTS=ON \ 15 | ../source 16 | make -j 32 $* 17 | -------------------------------------------------------------------------------- /build/CI/vasex/AmdEpyc82-clang8-rel: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | CLANG_ROOT=/opt/clang-8 4 | PATH=$CLANG_ROOT/bin:$PATH 5 | LD_LIBRARY_PATH=$CLANG_ROOT/lib:$LD_LIBRARY_PATH 6 | 7 | cmake -G "Unix Makefiles" \ 8 | -DCMAKE_BUILD_TYPE=RELEASE \ 9 | -DCMAKE_C_COMPILER=clang-8 \ 10 | -DCMAKE_CXX_COMPILER=clang-8 \ 11 | -DLIBCDS_CXX_STANDARD=14 \ 12 | -DCMAKE_CXX_FLAGS="-stdlib=libc++ -march=native -DCDS_RELEASE_ASSERT -g" \ 13 | -DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=lld -Wl,-rpath=$CLANG_ROOT/lib -lc++ -lc++abi" \ 14 | -DLIBCDS_WITH_TESTS=ON \ 15 | ../source 16 | make -j 32 $* 17 | -------------------------------------------------------------------------------- /build/CI/vasex/AmdEpyc82-gcc10-rel: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | GCC_ROOT=/opt/gcc-10 4 | PATH=$GCC_ROOT/bin:$PATH 5 | LD_LIBRARY_PATH=$GCC_ROOT/lib64:$LD_LIBRARY_PATH 6 | 7 | cmake -G "Unix Makefiles" \ 8 | -DCMAKE_BUILD_TYPE=RELEASE \ 9 | -DCMAKE_C_COMPILER=gcc-10 \ 10 | -DCMAKE_CXX_COMPILER=g++-10 \ 11 | -DLIBCDS_CXX_STANDARD=17 \ 12 | -DCMAKE_CXX_FLAGS="-march=native -Wmultistatement-macros -DCDS_RELEASE_ASSERT -g" \ 13 | -DCMAKE_EXE_LINKER_FLAGS="-Wl,-rpath=$GCC_ROOT/lib64" \ 14 | -DLIBCDS_WITH_TESTS=ON \ 15 | ../source 16 | make -j 32 $* 17 | -------------------------------------------------------------------------------- /build/CI/vasex/AmdEpyc82-gcc8-rel: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cmake -G "Unix Makefiles" \ 4 | -DCMAKE_BUILD_TYPE=RELEASE \ 5 | -DCMAKE_C_COMPILER=gcc \ 6 | -DCMAKE_CXX_COMPILER=g++ \ 7 | -DLIBCDS_CXX_STANDARD=17 \ 8 | -DCMAKE_CXX_FLAGS="-march=native -Wmultistatement-macros -DCDS_RELEASE_ASSERT -g" \ 9 | -DLIBCDS_WITH_TESTS=ON \ 10 | ../source 11 | make -j 32 $* 12 | -------------------------------------------------------------------------------- /build/CI/vasex/Xeon72-gcc6-rel: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export TMPDIR=${HOME}/tmp/ci 4 | 5 | GCC6_ROOT=/home/CI/bin/gcc-6 6 | PATH=$GCC6_ROOT/bin:$PATH 7 | LD_LIBRARY_PATH=$GCC6_ROOT/lib64:$LD_LIBRARY_PATH 8 | 9 | cmake -G "Unix Makefiles" \ 10 | -DCMAKE_BUILD_TYPE=RELEASE \ 11 | -DCMAKE_C_COMPILER=gcc-6 \ 12 | -DCMAKE_CXX_COMPILER=g++-6 \ 13 | -DLIBCDS_CXX_STANDARD=14 \ 14 | -DCMAKE_CXX_FLAGS="-march=native -DCDS_RELEASE_ASSERT -g" \ 15 | -DCMAKE_EXE_LINKER_FLAGS="-Wl,-rpath=$GCC6_ROOT/lib64" \ 16 | -DLIBCDS_WITH_TESTS=ON \ 17 | ../source 18 | make -j 10 $* 19 | -------------------------------------------------------------------------------- /build/CI/vasex/Xeon72-gcc7-rel: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export TMPDIR=${HOME}/tmp/ci 4 | 5 | GCC7_ROOT=/home/CI/bin/gcc-7 6 | PATH=$GCC7_ROOT/bin:$PATH 7 | LD_LIBRARY_PATH=$GCC7_ROOT/lib64:$LD_LIBRARY_PATH 8 | 9 | cmake -G "Unix Makefiles" \ 10 | -DCMAKE_BUILD_TYPE=RELEASE \ 11 | -DCMAKE_C_COMPILER=gcc-7 \ 12 | -DCMAKE_CXX_COMPILER=g++-7 \ 13 | -DLIBCDS_CXX_STANDARD=14 \ 14 | -DCMAKE_CXX_FLAGS="-march=native -DCDS_RELEASE_ASSERT -g" \ 15 | -DCMAKE_EXE_LINKER_FLAGS="-Wl,-rpath=$GCC7_ROOT/lib64" \ 16 | -DLIBCDS_WITH_TESTS=ON \ 17 | ../source 18 | make -j 10 $* 19 | -------------------------------------------------------------------------------- /build/CI/vasex/Xeon74-gcc6-rel: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export TMPDIR=${HOME}/tmp/ci 4 | 5 | GCC6_ROOT=/home/CI/bin/gcc-6 6 | PATH=$GCC6_ROOT/bin:$PATH 7 | LD_LIBRARY_PATH=$GCC6_ROOT/lib64:$LD_LIBRARY_PATH 8 | 9 | cmake -G "Unix Makefiles" \ 10 | -DCMAKE_BUILD_TYPE=RELEASE \ 11 | -DCMAKE_C_COMPILER=gcc-6 \ 12 | -DCMAKE_CXX_COMPILER=g++-6 \ 13 | -DLIBCDS_CXX_STANDARD=14 \ 14 | -DCMAKE_CXX_FLAGS="-march=native -DCDS_RELEASE_ASSERT -g" \ 15 | -DCMAKE_EXE_LINKER_FLAGS="-Wl,-rpath=$GCC6_ROOT/lib64" \ 16 | -DLIBCDS_WITH_TESTS=ON \ 17 | ../source 18 | make -j 10 $* 19 | -------------------------------------------------------------------------------- /build/CI/vasex/Xeon74-gcc7-rel: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export TMPDIR=${HOME}/tmp/ci 4 | 5 | GCC7_ROOT=/home/CI/bin/gcc-7 6 | PATH=$GCC7_ROOT/bin:$PATH 7 | LD_LIBRARY_PATH=$GCC7_ROOT/lib64:$LD_LIBRARY_PATH 8 | 9 | cmake -G "Unix Makefiles" \ 10 | -DCMAKE_BUILD_TYPE=RELEASE \ 11 | -DCMAKE_C_COMPILER=gcc-7 \ 12 | -DCMAKE_CXX_COMPILER=g++-7 \ 13 | -DLIBCDS_CXX_STANDARD=14 \ 14 | -DCMAKE_CXX_FLAGS="-march=native -DCDS_RELEASE_ASSERT -g" \ 15 | -DCMAKE_EXE_LINKER_FLAGS="-Wl,-rpath=$GCC7_ROOT/lib64" \ 16 | -DLIBCDS_WITH_TESTS=ON \ 17 | ../source 18 | make -j 10 $* 19 | -------------------------------------------------------------------------------- /build/cmake/description.txt: -------------------------------------------------------------------------------- 1 | libcds - Concurrent Data Structure C++ library -------------------------------------------------------------------------------- /build/cmake/post_install_script.sh: -------------------------------------------------------------------------------- 1 | ldconfig -------------------------------------------------------------------------------- /build/cmake/post_uninstall_script.sh: -------------------------------------------------------------------------------- 1 | ldconfig -------------------------------------------------------------------------------- /cds/algo/base.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_ALGO_BASE_H 7 | #define CDSLIB_ALGO_BASE_H 8 | 9 | #include 10 | 11 | namespace cds { 12 | 13 | /// Different approaches and techniques for supporting high-concurrent data structure 14 | namespace algo {} 15 | 16 | } // namespace cds 17 | 18 | #endif // #ifndef CDSLIB_ALGO_BASE_H 19 | -------------------------------------------------------------------------------- /cds/algo/flat_combining.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_ALGO_FLAT_COMBINING_H 7 | #define CDSLIB_ALGO_FLAT_COMBINING_H 8 | 9 | #include 10 | 11 | #endif // #ifndef CDSLIB_ALGO_FLAT_COMBINING_H 12 | -------------------------------------------------------------------------------- /cds/compiler/gcc/compiler_barriers.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_COMPILER_GCC_COMPILER_BARRIERS_H 7 | #define CDSLIB_COMPILER_GCC_COMPILER_BARRIERS_H 8 | 9 | #define CDS_COMPILER_RW_BARRIER __asm__ __volatile__ ( "" ::: "memory" ) 10 | #define CDS_COMPILER_R_BARRIER CDS_COMPILER_RW_BARRIER 11 | #define CDS_COMPILER_W_BARRIER CDS_COMPILER_RW_BARRIER 12 | 13 | #endif // #ifndef CDSLIB_COMPILER_GCC_COMPILER_BARRIERS_H 14 | -------------------------------------------------------------------------------- /cds/compiler/gcc/ppc64/bitop.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_COMPILER_GCC_PPC64_BITOP_H 7 | #define CDSLIB_COMPILER_GCC_PPC64_BITOP_H 8 | 9 | //@cond none 10 | namespace cds { 11 | namespace bitop { namespace platform { namespace gcc { namespace ppc64 { 12 | 13 | }} // namespace gcc::ppc64 14 | 15 | using namespace gcc::ppc64; 16 | 17 | }}} // namespace cds::bitop::platform 18 | //@endcond 19 | 20 | #endif // #ifndef CDSLIB_COMPILER_GCC_PPC64_BITOP_H 21 | -------------------------------------------------------------------------------- /cds/compiler/vc/compiler_barriers.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_COMPILER_VC_COMPILER_BARRIERS_H 7 | #define CDSLIB_COMPILER_VC_COMPILER_BARRIERS_H 8 | 9 | #include 10 | 11 | #pragma intrinsic(_ReadWriteBarrier) 12 | #pragma intrinsic(_ReadBarrier) 13 | #pragma intrinsic(_WriteBarrier) 14 | 15 | #define CDS_COMPILER_RW_BARRIER _ReadWriteBarrier() 16 | #define CDS_COMPILER_R_BARRIER _ReadBarrier() 17 | #define CDS_COMPILER_W_BARRIER _WriteBarrier() 18 | 19 | #endif // #ifndef CDSLIB_COMPILER_VC_COMPILER_BARRIERS_H 20 | -------------------------------------------------------------------------------- /cds/container/ellen_bintree_map_dhp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_CONTAINER_ELLEN_BINTREE_MAP_DHP_H 7 | #define CDSLIB_CONTAINER_ELLEN_BINTREE_MAP_DHP_H 8 | 9 | #include 10 | #include 11 | 12 | #endif // #ifndef CDSLIB_CONTAINER_ELLEN_BINTREE_MAP_DHP_H 13 | -------------------------------------------------------------------------------- /cds/container/ellen_bintree_map_hp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_CONTAINER_ELLEN_BINTREE_MAP_HP_H 7 | #define CDSLIB_CONTAINER_ELLEN_BINTREE_MAP_HP_H 8 | 9 | #include 10 | #include 11 | 12 | #endif // #ifndef CDSLIB_CONTAINER_ELLEN_BINTREE_MAP_HP_H 13 | -------------------------------------------------------------------------------- /cds/container/ellen_bintree_set_dhp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_CONTAINER_ELLEN_BINTREE_SET_DHP_H 7 | #define CDSLIB_CONTAINER_ELLEN_BINTREE_SET_DHP_H 8 | 9 | #include 10 | #include 11 | 12 | #endif // #ifndef CDSLIB_CONTAINER_ELLEN_BINTREE_SET_DHP_H 13 | -------------------------------------------------------------------------------- /cds/container/ellen_bintree_set_hp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_CONTAINER_ELLEN_BINTREE_SET_HP_H 7 | #define CDSLIB_CONTAINER_ELLEN_BINTREE_SET_HP_H 8 | 9 | #include 10 | #include 11 | 12 | #endif // #ifndef CDSLIB_CONTAINER_ELLEN_BINTREE_SET_HP_H 13 | -------------------------------------------------------------------------------- /cds/container/feldman_hashmap_dhp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_CONTAINER_FELDMAN_HASHMAP_DHP_H 7 | #define CDSLIB_CONTAINER_FELDMAN_HASHMAP_DHP_H 8 | 9 | #include 10 | #include 11 | 12 | #endif // #ifndef CDSLIB_CONTAINER_FELDMAN_HASHMAP_DHP_H 13 | -------------------------------------------------------------------------------- /cds/container/feldman_hashmap_hp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_CONTAINER_FELDMAN_HASHMAP_HP_H 7 | #define CDSLIB_CONTAINER_FELDMAN_HASHMAP_HP_H 8 | 9 | #include 10 | #include 11 | 12 | #endif // #ifndef CDSLIB_CONTAINER_FELDMAN_HASHMAP_HP_H 13 | -------------------------------------------------------------------------------- /cds/container/feldman_hashset_dhp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_CONTAINER_FELDMAN_HASHSET_DHP_H 7 | #define CDSLIB_CONTAINER_FELDMAN_HASHSET_DHP_H 8 | 9 | #include 10 | #include 11 | 12 | #endif // #ifndef CDSLIB_CONTAINER_FELDMAN_HASHSET_DHP_H 13 | -------------------------------------------------------------------------------- /cds/container/feldman_hashset_hp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_CONTAINER_FELDMAN_HASHSET_HP_H 7 | #define CDSLIB_CONTAINER_FELDMAN_HASHSET_HP_H 8 | 9 | #include 10 | #include 11 | 12 | #endif // #ifndef CDSLIB_CONTAINER_FELDMAN_HASHSET_HP_H 13 | -------------------------------------------------------------------------------- /cds/container/iterable_kvlist_dhp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_CONTAINER_ITERABLE_KVLIST_DHP_H 7 | #define CDSLIB_CONTAINER_ITERABLE_KVLIST_DHP_H 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | #endif // #ifndef CDSLIB_CONTAINER_ITERABLE_KVLIST_DHP_H 15 | -------------------------------------------------------------------------------- /cds/container/iterable_kvlist_hp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_CONTAINER_ITERABLE_KVLIST_HP_H 7 | #define CDSLIB_CONTAINER_ITERABLE_KVLIST_HP_H 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | #endif // #ifndef CDSLIB_CONTAINER_ITERABLE_KVLIST_HP_H 15 | -------------------------------------------------------------------------------- /cds/container/iterable_list_dhp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_CONTAINER_ITERABLE_LIST_DHP_H 7 | #define CDSLIB_CONTAINER_ITERABLE_LIST_DHP_H 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | #endif // #ifndef CDSLIB_CONTAINER_ITERABLE_LIST_DHP_H 15 | -------------------------------------------------------------------------------- /cds/container/iterable_list_hp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_CONTAINER_ITERABLE_LIST_HP_H 7 | #define CDSLIB_CONTAINER_ITERABLE_LIST_HP_H 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | #endif // #ifndef CDSLIB_CONTAINER_ITERABLE_LIST_HP_H 15 | -------------------------------------------------------------------------------- /cds/container/lazy_kvlist_dhp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_CONTAINER_LAZY_KVLIST_DHP_H 7 | #define CDSLIB_CONTAINER_LAZY_KVLIST_DHP_H 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | #endif // #ifndef CDSLIB_CONTAINER_LAZY_KVLIST_DHP_H 15 | -------------------------------------------------------------------------------- /cds/container/lazy_kvlist_hp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_CONTAINER_LAZY_KVLIST_HP_H 7 | #define CDSLIB_CONTAINER_LAZY_KVLIST_HP_H 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | #endif // #ifndef CDSLIB_CONTAINER_LAZY_KVLIST_HP_H 15 | -------------------------------------------------------------------------------- /cds/container/lazy_list_dhp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_CONTAINER_LAZY_LIST_DHP_H 7 | #define CDSLIB_CONTAINER_LAZY_LIST_DHP_H 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | #endif // #ifndef CDSLIB_CONTAINER_LAZY_LIST_DHP_H 15 | -------------------------------------------------------------------------------- /cds/container/lazy_list_hp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_CONTAINER_LAZY_LIST_HP_H 7 | #define CDSLIB_CONTAINER_LAZY_LIST_HP_H 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | #endif // #ifndef CDSLIB_CONTAINER_LAZY_LIST_HP_H 15 | -------------------------------------------------------------------------------- /cds/container/michael_kvlist_dhp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_CONTAINER_MICHAEL_KVLIST_DHP_H 7 | #define CDSLIB_CONTAINER_MICHAEL_KVLIST_DHP_H 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | #endif // #ifndef CDSLIB_CONTAINER_MICHAEL_KVLIST_DHP_H 15 | -------------------------------------------------------------------------------- /cds/container/michael_kvlist_hp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_CONTAINER_MICHAEL_KVLIST_HP_H 7 | #define CDSLIB_CONTAINER_MICHAEL_KVLIST_HP_H 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | #endif // #ifndef CDSLIB_CONTAINER_MICHAEL_KVLIST_HP_H 15 | -------------------------------------------------------------------------------- /cds/container/michael_list_dhp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_CONTAINER_MICHAEL_LIST_DHP_H 7 | #define CDSLIB_CONTAINER_MICHAEL_LIST_DHP_H 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | #endif // #ifndef CDSLIB_CONTAINER_MICHAEL_LIST_DHP_H 15 | -------------------------------------------------------------------------------- /cds/container/michael_list_hp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_CONTAINER_MICHAEL_LIST_HP_H 7 | #define CDSLIB_CONTAINER_MICHAEL_LIST_HP_H 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | #endif // #ifndef CDSLIB_CONTAINER_MICHAEL_LIST_HP_H 15 | -------------------------------------------------------------------------------- /cds/container/skip_list_map_dhp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_CONTAINER_SKIP_LIST_SET_DHP_H 7 | #define CDSLIB_CONTAINER_SKIP_LIST_SET_DHP_H 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | #endif // #ifndef CDSLIB_CONTAINER_SKIP_LIST_SET_DHP_H 15 | -------------------------------------------------------------------------------- /cds/container/skip_list_map_hp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_CONTAINER_SKIP_LIST_MAP_HP_H 7 | #define CDSLIB_CONTAINER_SKIP_LIST_MAP_HP_H 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | #endif // #ifndef CDSLIB_CONTAINER_SKIP_LIST_MAP_HP_H 15 | -------------------------------------------------------------------------------- /cds/container/skip_list_set_dhp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_CONTAINER_SKIP_LIST_MAP_DHP_H 7 | #define CDSLIB_CONTAINER_SKIP_LIST_MAP_DHP_H 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | #endif // #ifndef CDSLIB_CONTAINER_SKIP_LIST_MAP_DHP_H 15 | -------------------------------------------------------------------------------- /cds/container/skip_list_set_hp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_CONTAINER_SKIP_LIST_SET_HP_H 7 | #define CDSLIB_CONTAINER_SKIP_LIST_SET_HP_H 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | #endif // #ifndef CDSLIB_CONTAINER_SKIP_LIST_SET_HP_H 15 | -------------------------------------------------------------------------------- /cds/details/bounded_container.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_BOUNDED_CONTAINER_H 7 | #define CDSLIB_BOUNDED_CONTAINER_H 8 | 9 | namespace cds { 10 | /// Bounded container 11 | /** 12 | If a container has upper limit of item then it should be based on bounded_container class. 13 | Example of those containers: cyclic queue (\p cds::container::VyukovMPMCCycleQueue) 14 | */ 15 | struct bounded_container {}; 16 | } // namespace cds 17 | 18 | #endif // CDSLIB_BOUNDED_CONTAINER_H 19 | -------------------------------------------------------------------------------- /cds/gc/default_gc.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_GC_DEFAULT_GC_H 7 | #define CDSLIB_GC_DEFAULT_GC_H 8 | 9 | #include 10 | 11 | namespace cds { namespace gc { 12 | 13 | /// Default garbage collector 14 | typedef HP default_gc; 15 | 16 | }} // namespace cds::gc 17 | 18 | 19 | #endif // #ifndef CDSLIB_GC_DEFAULT_GC_H 20 | -------------------------------------------------------------------------------- /cds/intrusive/ellen_bintree_dhp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_INTRUSIVE_ELLEN_BINTREE_DHP_H 7 | #define CDSLIB_INTRUSIVE_ELLEN_BINTREE_DHP_H 8 | 9 | #include 10 | #include 11 | 12 | #endif // #ifndef CDSLIB_INTRUSIVE_ELLEN_BINTREE_DHP_H 13 | -------------------------------------------------------------------------------- /cds/intrusive/ellen_bintree_hp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_INTRUSIVE_ELLEN_BINTREE_HP_H 7 | #define CDSLIB_INTRUSIVE_ELLEN_BINTREE_HP_H 8 | 9 | #include 10 | #include 11 | 12 | #endif // #ifndef CDSLIB_INTRUSIVE_ELLEN_BINTREE_HP_H 13 | -------------------------------------------------------------------------------- /cds/intrusive/feldman_hashset_dhp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_INTRUSIVE_FELDMAN_HASHSET_DHP_H 7 | #define CDSLIB_INTRUSIVE_FELDMAN_HASHSET_DHP_H 8 | 9 | #include 10 | #include 11 | 12 | #endif // #ifndef CDSLIB_INTRUSIVE_FELDMAN_HASHSET_DHP_H 13 | -------------------------------------------------------------------------------- /cds/intrusive/feldman_hashset_hp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_INTRUSIVE_FELDMAN_HASHSET_HP_H 7 | #define CDSLIB_INTRUSIVE_FELDMAN_HASHSET_HP_H 8 | 9 | #include 10 | #include 11 | 12 | #endif // #ifndef CDSLIB_INTRUSIVE_FELDMAN_HASHSET_HP_H 13 | -------------------------------------------------------------------------------- /cds/intrusive/iterable_list_dhp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_INTRUSIVE_ITERABLE_LIST_DHP_H 7 | #define CDSLIB_INTRUSIVE_ITERABLE_LIST_DHP_H 8 | 9 | #include 10 | #include 11 | 12 | #endif // #ifndef CDSLIB_INTRUSIVE_ITERABLE_LIST_DHP_H 13 | -------------------------------------------------------------------------------- /cds/intrusive/iterable_list_hp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_INTRUSIVE_ITERABLE_LIST_HP_H 7 | #define CDSLIB_INTRUSIVE_ITERABLE_LIST_HP_H 8 | 9 | #include 10 | #include 11 | 12 | #endif // #ifndef CDSLIB_INTRUSIVE_ITERABLE_LIST_HP_H 13 | -------------------------------------------------------------------------------- /cds/intrusive/lazy_list_dhp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_INTRUSIVE_LAZY_LIST_DHP_H 7 | #define CDSLIB_INTRUSIVE_LAZY_LIST_DHP_H 8 | 9 | #include 10 | #include 11 | 12 | #endif // #ifndef CDSLIB_INTRUSIVE_LAZY_LIST_DHP_H 13 | -------------------------------------------------------------------------------- /cds/intrusive/lazy_list_hp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_INTRUSIVE_LAZY_LIST_HP_H 7 | #define CDSLIB_INTRUSIVE_LAZY_LIST_HP_H 8 | 9 | #include 10 | #include 11 | 12 | #endif // #ifndef CDSLIB_INTRUSIVE_LAZY_LIST_HP_H 13 | -------------------------------------------------------------------------------- /cds/intrusive/michael_list_dhp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_INTRUSIVE_MICHAEL_LIST_DHP_H 7 | #define CDSLIB_INTRUSIVE_MICHAEL_LIST_DHP_H 8 | 9 | #include 10 | #include 11 | 12 | #endif // #ifndef CDSLIB_INTRUSIVE_MICHAEL_LIST_DHP_H 13 | -------------------------------------------------------------------------------- /cds/intrusive/michael_list_hp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_INTRUSIVE_MICHAEL_LIST_HP_H 7 | #define CDSLIB_INTRUSIVE_MICHAEL_LIST_HP_H 8 | 9 | #include 10 | #include 11 | 12 | #endif // #ifndef CDSLIB_INTRUSIVE_MICHAEL_LIST_HP_H 13 | -------------------------------------------------------------------------------- /cds/intrusive/skip_list_dhp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_INTRUSIVE_SKIP_LIST_DHP_H 7 | #define CDSLIB_INTRUSIVE_SKIP_LIST_DHP_H 8 | 9 | #include 10 | #include 11 | 12 | #endif // CDSLIB_INTRUSIVE_SKIP_LIST_DHP_H 13 | -------------------------------------------------------------------------------- /cds/intrusive/skip_list_hp.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_INTRUSIVE_SKIP_LIST_HP_H 7 | #define CDSLIB_INTRUSIVE_SKIP_LIST_HP_H 8 | 9 | #include 10 | #include 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /cds/os/aix/alloc_aligned.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_OS_AIX_ALLOC_ALIGNED_H 7 | #define CDSLIB_OS_AIX_ALLOC_ALIGNED_H 8 | 9 | #include 10 | 11 | #endif // #ifndef CDSLIB_OS_AIX_ALLOC_ALIGNED_H 12 | 13 | -------------------------------------------------------------------------------- /cds/os/free_bsd/alloc_aligned.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_OS_FREE_BSD_ALLOC_ALIGNED_H 7 | #define CDSLIB_OS_FREE_BSD_ALLOC_ALIGNED_H 8 | 9 | #include 10 | 11 | #endif // #ifndef CDSLIB_OS_FREE_BSD_ALLOC_ALIGNED_H 12 | 13 | -------------------------------------------------------------------------------- /cds/os/hpux/alloc_aligned.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_OS_HPUX_ALLOC_ALIGNED_H 7 | #define CDSLIB_OS_HPUX_ALLOC_ALIGNED_H 8 | 9 | #include 10 | 11 | #endif // #ifndef CDSLIB_OS_HPUX_ALLOC_ALIGNED_H 12 | 13 | -------------------------------------------------------------------------------- /cds/os/hpux/timer.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_OS_HPUX_TIMER_H 7 | #define CDSLIB_OS_HPUX_TIMER_H 8 | 9 | #include 10 | 11 | #endif // #ifndef CDSLIB_OS_HPUX_TIMER_H 12 | -------------------------------------------------------------------------------- /cds/os/linux/alloc_aligned.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_OS_LINUX_ALLOC_ALIGNED_H 7 | #define CDSLIB_OS_LINUX_ALLOC_ALIGNED_H 8 | 9 | //@cond 10 | #ifdef __ANDROID__ 11 | # include 12 | #else 13 | # include 14 | #endif 15 | //@endcond 16 | 17 | #endif // #ifndef CDSLIB_OS_LINUX_ALLOC_ALIGNED_H 18 | 19 | -------------------------------------------------------------------------------- /cds/os/sunos/alloc_aligned.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_OS_SUNOS_ALLOC_ALIGNED_H 7 | #define CDSLIB_OS_SUNOS_ALLOC_ALIGNED_H 8 | 9 | #include 10 | 11 | #endif // #ifndef CDSLIB_OS_SUNOS_ALLOC_ALIGNED_H 12 | 13 | -------------------------------------------------------------------------------- /cds/os/thread.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_OS_THREAD_H 7 | #define CDSLIB_OS_THREAD_H 8 | 9 | #include 10 | #include 11 | 12 | #if CDS_OS_TYPE == CDS_OS_WIN32 || CDS_OS_TYPE == CDS_OS_WIN64 || CDS_OS_TYPE == CDS_OS_MINGW 13 | # include 14 | #else 15 | # include 16 | #endif 17 | 18 | namespace cds { namespace OS { 19 | 20 | /// Default backoff::yield implementation 21 | static inline void backoff() 22 | { 23 | std::this_thread::yield(); 24 | } 25 | }} // namespace cds::OS 26 | 27 | #endif // #ifndef CDSLIB_OS_THREAD_H 28 | -------------------------------------------------------------------------------- /cds/threading/details/cxx11.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_THREADING_DETAILS_CXX11_H 7 | #define CDSLIB_THREADING_DETAILS_CXX11_H 8 | 9 | #include 10 | 11 | #endif // #ifndef CDSLIB_THREADING_DETAILS_CXX11_H 12 | -------------------------------------------------------------------------------- /cds/threading/details/gcc.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_THREADING_DETAILS_GCC_H 7 | #define CDSLIB_THREADING_DETAILS_GCC_H 8 | 9 | #include 10 | 11 | #endif // #ifndef CDSLIB_THREADING_DETAILS_GCC_H 12 | -------------------------------------------------------------------------------- /cds/threading/details/msvc.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_THREADING_DETAILS_MSVC_H 7 | #define CDSLIB_THREADING_DETAILS_MSVC_H 8 | 9 | #include 10 | 11 | #endif // #ifndef CDSLIB_THREADING_DETAILS_MSVC_H 12 | -------------------------------------------------------------------------------- /cds/threading/details/pthread.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_THREADING_DETAILS_PTHREAD_H 7 | #define CDSLIB_THREADING_DETAILS_PTHREAD_H 8 | 9 | #include 10 | 11 | #endif // #ifndef CDSLIB_THREADING_DETAILS_PTHREAD_H 12 | -------------------------------------------------------------------------------- /cds/threading/details/wintls.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_THREADING_DETAILS_WINTLS_H 7 | #define CDSLIB_THREADING_DETAILS_WINTLS_H 8 | 9 | #include 10 | #include 11 | 12 | #endif // #ifndef CDSLIB_THREADING_DETAILS_WINTLS_H 13 | -------------------------------------------------------------------------------- /cds/version.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSLIB_VERSION_H 7 | #define CDSLIB_VERSION_H 8 | 9 | // cds library version 10 | 11 | #define CDS_VERSION 0x030000 12 | 13 | #define CDS_VERSION_MAJOR ((CDS_VERSION & 0xFF0000)>> 16) 14 | #define CDS_VERSION_MINOR ((CDS_VERSION & 0x00FF00) >> 8) 15 | #define CDS_VERSION_PATCH (CDS_VERSION & 0x0000FF) 16 | 17 | // CDS_VERSION == CDS_VERSION_MAJOR '.' CDS_VERSION_MINOR '.' CDS_VERSION_PATCH 18 | #define CDS_VERSION_STRING "3.0.0" 19 | 20 | #endif // #ifndef CDSLIB_VERSION_H 21 | 22 | -------------------------------------------------------------------------------- /change.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khizmax/libcds/9985d2a87feaa3e92532e28f4ab762a82855a49c/change.log -------------------------------------------------------------------------------- /doxygen/footer.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | $projectname $projectnumber 4 | Developed by Maxim Khizhinsky aka khizmax and other contributors 2007 - 2020 5 |
6 | Autogenerated $datetime by Doxygen $doxygenversion 7 |
8 | 9 | 10 | -------------------------------------------------------------------------------- /doxygen/image/feldman_hashset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khizmax/libcds/9985d2a87feaa3e92532e28f4ab762a82855a49c/doxygen/image/feldman_hashset.png -------------------------------------------------------------------------------- /doxygen/images.odp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khizmax/libcds/9985d2a87feaa3e92532e28f4ab762a82855a49c/doxygen/images.odp -------------------------------------------------------------------------------- /doxygen/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Automatic redirection failed, please go to index.html. 9 | 10 | 11 | -------------------------------------------------------------------------------- /projects/Win/build-msbuild.cmd: -------------------------------------------------------------------------------- 1 | :: Command line arguments: 2 | :: %1 - Visual C++ version: vc12 (2013), vc14 (2015) 3 | :: %2 - configuration to build (Release, Debug etc) 4 | :: %3,%4,...%9 - [optional] additional MSBuild options 5 | 6 | set vcXX=%1 7 | set cfg=%2 8 | set MSBUILD=msbuild 9 | 10 | :make 11 | for %%A in (x64 Win32) do ( 12 | %MSBUILD% %vcXX%\cds.sln /t:Clean /p:Configuration=%cfg% /p:Platform=%%A %3 %4 %5 %6 %7 %8 %9 13 | %MSBUILD% %vcXX%\cds.sln /t:Build /p:Configuration=%cfg% /p:Platform=%%A /fl /flp:LogFile=%vcXX%_%%A.log;Encoding=UTF-8;Verbosity=normal /v:normal %3 %4 %5 %6 %7 %8 %9 14 | ) 15 | -------------------------------------------------------------------------------- /projects/Win/build-vc14.cmd: -------------------------------------------------------------------------------- 1 | call "%VS140COMNTOOLS%"\vsvars32.bat 2 | call build-msbuild.cmd vc14 Release /tv:14.0 /m:2 3 | -------------------------------------------------------------------------------- /src/urcu_gp.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | namespace cds { namespace urcu { namespace details { 9 | 10 | template<> CDS_EXPORT_API singleton_vtbl * gp_singleton_instance< general_instant_tag >::s_pRCU = nullptr; 11 | template<> CDS_EXPORT_API singleton_vtbl * gp_singleton_instance< general_buffered_tag >::s_pRCU = nullptr; 12 | template<> CDS_EXPORT_API singleton_vtbl * gp_singleton_instance< general_threaded_tag >::s_pRCU = nullptr; 13 | 14 | }}} // namespace cds::urcu::details 15 | -------------------------------------------------------------------------------- /test/CMakeLists.txt.gtest: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.12) 2 | 3 | project(googletest-download NONE) 4 | 5 | include(ExternalProject) 6 | ExternalProject_Add(googletest 7 | GIT_REPOSITORY https://github.com/google/googletest.git 8 | GIT_TAG master 9 | SOURCE_DIR "${CMAKE_BINARY_DIR}/test/googletest-src" 10 | BINARY_DIR "${CMAKE_BINARY_DIR}/test/googletest-build" 11 | CONFIGURE_COMMAND "" 12 | BUILD_COMMAND "" 13 | INSTALL_COMMAND "" 14 | TEST_COMMAND "" 15 | ) -------------------------------------------------------------------------------- /test/include/cds_test/ext_byteswap.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSTEST_BYTESWAP_H 7 | #define CDSTEST_BYTESWAP_H 8 | 9 | #ifdef CDSTEST_HAVE_BYTESWAP_H 10 | # include 11 | #else 12 | 13 | #define bswap_16(value) ((((value) & 0xff) << 8) | ((value) >> 8)) 14 | 15 | #define bswap_32(value) (((uint32_t)bswap_16((uint16_t)((value) & 0xffff)) << 16) | (uint32_t)bswap_16((uint16_t)((value) >> 16))) 16 | 17 | #define bswap_64(value) (((uint64_t)bswap_32((uint32_t)((value) & 0xffffffff)) << 32) | (uint64_t)bswap_32((uint32_t)((value) >> 32))) 18 | 19 | #endif 20 | #endif // CDSTEST_BYTESWAP_H 21 | -------------------------------------------------------------------------------- /test/include/cds_test/ext_gtest.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef CDSTEST_EXT_GTEST_H 7 | #define CDSTEST_EXT_GTEST_H 8 | 9 | 10 | #if defined( __GCC__ ) && !defined(__clang__) && __GNUC__ >= 7 11 | # pragma GCC diagnostic push 12 | // Unfortunately, seems, -Wduplicated-branches cannot be controlled via this pragma 13 | # pragma GCC diagnostic ignored "-Wduplicated-branches" 14 | #endif 15 | 16 | #include 17 | 18 | #if defined( __GCC__ ) && !defined(__clang__) && __GNUC__ >= 7 19 | # pragma GCC diagnostic pop 20 | #endif 21 | 22 | #endif // #ifndef CDSTEST_EXT_GTEST_H 23 | -------------------------------------------------------------------------------- /test/stress/data/text.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khizmax/libcds/9985d2a87feaa3e92532e28f4ab762a82855a49c/test/stress/data/text.txt -------------------------------------------------------------------------------- /test/stress/framework/city.h: -------------------------------------------------------------------------------- 1 | #include 2 | -------------------------------------------------------------------------------- /test/stress/framework/ellen_bintree_update_desc_pool.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "ellen_bintree_update_desc_pool.h" 7 | 8 | namespace ellen_bintree_pool { 9 | update_desc_pool_type s_UpdateDescPool; 10 | 11 | bounded_update_desc_pool_type s_BoundedUpdateDescPool; 12 | 13 | cds::atomicity::event_counter internal_node_counter::m_nAlloc; 14 | cds::atomicity::event_counter internal_node_counter::m_nFree; 15 | } 16 | -------------------------------------------------------------------------------- /test/stress/freelist/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(PACKAGE_NAME stress-freelist) 2 | 3 | set(CDSSTRESS_FREELIST_SOURCES 4 | ../main.cpp 5 | put_get.cpp 6 | put_get_single.cpp 7 | ) 8 | 9 | include_directories( 10 | ${CMAKE_CURRENT_SOURCE_DIR} 11 | ) 12 | 13 | add_executable(${PACKAGE_NAME} ${CDSSTRESS_FREELIST_SOURCES}) 14 | target_link_libraries(${PACKAGE_NAME} ${CDS_TEST_LIBRARIES} ${CDSSTRESS_FRAMEWORK_LIBRARY}) 15 | strip_binary(${PACKAGE_NAME}) 16 | add_test(NAME ${PACKAGE_NAME} COMMAND ${PACKAGE_NAME} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}) -------------------------------------------------------------------------------- /test/stress/map/del3/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(PACKAGE_NAME stress-map-del3) 2 | 3 | set(CDSSTRESS_MAP_DEL3_SOURCES 4 | ../../main.cpp 5 | map_del3.cpp 6 | map_del3_bronsonavltree.cpp 7 | map_del3_cuckoo.cpp 8 | map_del3_ellentree.cpp 9 | map_del3_feldman_hashmap.cpp 10 | map_del3_michael.cpp 11 | map_del3_skip.cpp 12 | map_del3_split.cpp 13 | ) 14 | 15 | include_directories( 16 | ${CMAKE_CURRENT_SOURCE_DIR} 17 | ${CMAKE_CURRENT_SOURCE_DIR}/.. 18 | ) 19 | 20 | add_executable(${PACKAGE_NAME} ${CDSSTRESS_MAP_DEL3_SOURCES}) 21 | target_link_libraries(${PACKAGE_NAME} ${CDS_TEST_LIBRARIES} ${CDSSTRESS_FRAMEWORK_LIBRARY}) 22 | strip_binary(${PACKAGE_NAME}) 23 | add_test(NAME ${PACKAGE_NAME} COMMAND ${PACKAGE_NAME} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}) -------------------------------------------------------------------------------- /test/stress/map/del3/map_del3_bronsonavltree.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_del3.h" 7 | #include "map_type_bronson_avltree.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_BronsonAVLTreeMap( Map_Del3, run_test_extract, key_thread, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/del3/map_del3_cuckoo.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_del3.h" 7 | #include "map_type_cuckoo.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_CuckooMap( Map_Del3, run_test, key_thread, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/del3/map_del3_ellentree.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_del3.h" 7 | #include "map_type_ellen_bintree.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_EllenBinTreeMap( Map_Del3, run_test_extract, key_thread, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/del3/map_del3_michael.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_del3.h" 7 | #include "map_type_michael.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_MichaelMap( Map_Del3_LF, run_test_extract, key_thread, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/del3/map_del3_skip.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_del3.h" 7 | #include "map_type_skip_list.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_SkipListMap( Map_Del3, run_test_extract, key_thread, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/del3/map_del3_split.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_del3.h" 7 | #include "map_type_split_list.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_SplitListMap( Map_Del3_LF, run_test_extract, key_thread, size_t ) 12 | CDSSTRESS_SplitListIterableMap( Map_Del3_LF, run_test_extract, key_thread, size_t ) 13 | 14 | } // namespace map 15 | -------------------------------------------------------------------------------- /test/stress/map/delodd/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(PACKAGE_NAME stress-map-delodd) 2 | 3 | set(CDSSTRESS_MAP_DELODD_SOURCES 4 | ../../main.cpp 5 | map_delodd.cpp 6 | map_delodd_bronsonavltree.cpp 7 | map_delodd_cuckoo.cpp 8 | map_delodd_ellentree.cpp 9 | map_delodd_feldman_hashmap.cpp 10 | map_delodd_michael.cpp 11 | map_delodd_skip.cpp 12 | map_delodd_split.cpp 13 | ) 14 | 15 | include_directories( 16 | ${CMAKE_CURRENT_SOURCE_DIR} 17 | ${CMAKE_CURRENT_SOURCE_DIR}/.. 18 | ) 19 | 20 | add_executable(${PACKAGE_NAME} ${CDSSTRESS_MAP_DELODD_SOURCES}) 21 | target_link_libraries(${PACKAGE_NAME} ${CDS_TEST_LIBRARIES} ${CDSSTRESS_FRAMEWORK_LIBRARY}) 22 | strip_binary(${PACKAGE_NAME}) 23 | add_test(NAME ${PACKAGE_NAME} COMMAND ${PACKAGE_NAME} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}) -------------------------------------------------------------------------------- /test/stress/map/delodd/map_delodd_bronsonavltree.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_delodd.h" 7 | #include "map_type_bronson_avltree.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_BronsonAVLTreeMap( Map_DelOdd, run_test_extract, key_thread, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/delodd/map_delodd_cuckoo.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_delodd.h" 7 | #include "map_type_cuckoo.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_CuckooMap( Map_DelOdd, run_test, key_thread, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/delodd/map_delodd_ellentree.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_delodd.h" 7 | #include "map_type_ellen_bintree.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_EllenBinTreeMap( Map_DelOdd, run_test_extract, key_thread, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/delodd/map_delodd_michael.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_delodd.h" 7 | #include "map_type_michael.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_MichaelMap( Map_DelOdd_LF, run_test_extract, key_thread, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/delodd/map_delodd_skip.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_delodd.h" 7 | #include "map_type_skip_list.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_SkipListMap( Map_DelOdd, run_test_extract, key_thread, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/delodd/map_delodd_split.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_delodd.h" 7 | #include "map_type_split_list.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_SplitListMap( Map_DelOdd_LF, run_test_extract, key_thread, size_t ) 12 | CDSSTRESS_SplitListIterableMap( Map_DelOdd_LF, run_test_extract, key_thread, size_t ) 13 | 14 | } // namespace map 15 | -------------------------------------------------------------------------------- /test/stress/map/find_string/map_find_string_bronsonavltree.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_find_string.h" 7 | #include "map_type_bronson_avltree.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_BronsonAVLTreeMap( Map_find_string, run_test, std::string, Map_find_string::value_type ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/find_string/map_find_string_cuckoo.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_find_string.h" 7 | #include "map_type_cuckoo.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_CuckooMap( Map_find_string, run_test, std::string, Map_find_string::value_type ) 12 | #if CDS_BUILD_BITS == 64 13 | CDSSTRESS_CuckooMap_city64( Map_find_string, run_test, std::string, Map_find_string::value_type ) 14 | #endif 15 | 16 | } // namespace map 17 | -------------------------------------------------------------------------------- /test/stress/map/find_string/map_find_string_ellentree.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_find_string.h" 7 | #include "map_type_ellen_bintree.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_EllenBinTreeMap( Map_find_string, run_test, std::string, Map_find_string::value_type ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/find_string/map_find_string_feldman_hashset.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_find_string.h" 7 | #include "map_type_feldman_hashmap.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_FeldmanHashMap_stdhash( Map_find_string_stdhash, run_test, std::string, Map_find_string::value_type ) 12 | #if CDS_BUILD_BITS == 64 13 | CDSSTRESS_FeldmanHashMap_city64( Map_find_string_city64, run_test, std::string, Map_find_string::value_type ) 14 | CDSSTRESS_FeldmanHashMap_city128( Map_find_string_city128, run_test, std::string, Map_find_string::value_type ) 15 | #endif 16 | 17 | } // namespace map 18 | -------------------------------------------------------------------------------- /test/stress/map/find_string/map_find_string_michael.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_find_string.h" 7 | #include "map_type_michael.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_MichaelMap( Map_find_string_LF, run_test, std::string, Map_find_string::value_type ) 12 | CDSSTRESS_MichaelMap_nogc( Map_find_string_LF, run_test, std::string, Map_find_string::value_type ) 13 | 14 | } // namespace map 15 | -------------------------------------------------------------------------------- /test/stress/map/find_string/map_find_string_skip.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_find_string.h" 7 | #include "map_type_skip_list.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_SkipListMap( Map_find_string, run_test, std::string, Map_find_string::value_type ) 12 | CDSSTRESS_SkipListMap_nogc( Map_find_string, run_test, std::string, Map_find_string::value_type ) 13 | 14 | } // namespace map 15 | -------------------------------------------------------------------------------- /test/stress/map/find_string/map_find_string_split.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_find_string.h" 7 | #include "map_type_split_list.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_SplitListMap( Map_find_string_LF, run_test, std::string, Map_find_string::value_type ) 12 | CDSSTRESS_SplitListIterableMap( Map_find_string_LF, run_test, std::string, Map_find_string::value_type ) 13 | CDSSTRESS_SplitListMap_nogc( Map_find_string_LF, run_test, std::string, Map_find_string::value_type ) 14 | 15 | } // namespace map 16 | -------------------------------------------------------------------------------- /test/stress/map/find_string/map_find_string_std.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_find_string.h" 7 | #include "map_type_std.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_StdMap( Map_find_string, run_test, std::string, Map_find_string::value_type ) 12 | CDSSTRESS_StdMap_nolock( Map_find_string, run_test, std::string, Map_find_string::value_type ) 13 | 14 | } // namespace map 15 | -------------------------------------------------------------------------------- /test/stress/map/find_string/map_find_string_striped.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_find_string.h" 7 | #include "map_type_striped.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_StripedMap( Map_find_string_LF, run_test, std::string, Map_find_string::value_type ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdel_func/map_insdel_func_bronsonavltree.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdel_func.h" 7 | #include "map_type_bronson_avltree.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_BronsonAVLTreeMap( Map_InsDel_func, run_test, size_t, Map_InsDel_func::value_type ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdel_func/map_insdel_func_cuckoo.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdel_func.h" 7 | #include "map_type_cuckoo.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_CuckooMap( Map_InsDel_func, run_test, size_t, Map_InsDel_func::value_type ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdel_func/map_insdel_func_ellentree.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdel_func.h" 7 | #include "map_type_ellen_bintree.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_EllenBinTreeMap( Map_InsDel_func, run_test, size_t, Map_InsDel_func::value_type ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdel_func/map_insdel_func_feldman_hashset.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdel_func.h" 7 | #include "map_type_feldman_hashmap.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_FeldmanHashMap_fixed( Map_InsDel_func, run_test, size_t, Map_InsDel_func::value_type ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdel_func/map_insdel_func_michael.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdel_func.h" 7 | #include "map_type_michael.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_MichaelMap( Map_InsDel_func_LF, run_test2, size_t, Map_InsDel_func::value_type ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdel_func/map_insdel_func_skip.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdel_func.h" 7 | #include "map_type_skip_list.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_SkipListMap( Map_InsDel_func, run_test, size_t, Map_InsDel_func::value_type ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdel_func/map_insdel_func_split.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdel_func.h" 7 | #include "map_type_split_list.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_SplitListMap( Map_InsDel_func_LF, run_test, size_t, Map_InsDel_func::value_type ) 12 | CDSSTRESS_SplitListIterableMap( Map_InsDel_func_LF, run_test, size_t, Map_InsDel_func::value_type ) 13 | 14 | } // namespace map 15 | -------------------------------------------------------------------------------- /test/stress/map/insdel_func/map_insdel_func_striped.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdel_func.h" 7 | #include "map_type_striped.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_StripedMap( Map_InsDel_func_LF, run_test, size_t, Map_InsDel_func::value_type ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdel_item_int/map_insdel_item_int_bronsonavltree.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdel_item_int.h" 7 | #include "map_type_bronson_avltree.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_BronsonAVLTreeMap( Map_InsDel_item_int, run_test, size_t, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdel_item_int/map_insdel_item_int_cuckoo.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdel_item_int.h" 7 | #include "map_type_cuckoo.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_CuckooMap( Map_InsDel_item_int, run_test, size_t, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdel_item_int/map_insdel_item_int_ellentree.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdel_item_int.h" 7 | #include "map_type_ellen_bintree.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_EllenBinTreeMap( Map_InsDel_item_int, run_test, size_t, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdel_item_int/map_insdel_item_int_feldman_hashset.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdel_item_int.h" 7 | #include "map_type_feldman_hashmap.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_FeldmanHashMap_fixed( Map_InsDel_item_int, run_test, size_t, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdel_item_int/map_insdel_item_int_michael.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdel_item_int.h" 7 | #include "map_type_michael.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_MichaelMap( Map_InsDel_item_int_LF, run_test, size_t, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdel_item_int/map_insdel_item_int_skip.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdel_item_int.h" 7 | #include "map_type_skip_list.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_SkipListMap( Map_InsDel_item_int, run_test, size_t, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdel_item_int/map_insdel_item_int_split.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdel_item_int.h" 7 | #include "map_type_split_list.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_SplitListMap( Map_InsDel_item_int_LF, run_test, size_t, size_t ) 12 | CDSSTRESS_SplitListIterableMap( Map_InsDel_item_int_LF, run_test, size_t, size_t ) 13 | 14 | } // namespace map 15 | -------------------------------------------------------------------------------- /test/stress/map/insdel_item_int/map_insdel_item_int_striped.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdel_item_int.h" 7 | #include "map_type_striped.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_StripedMap( Map_InsDel_item_int_LF, run_test, size_t, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdel_string/map_insdel_string_bronsonavltree.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdel_string.h" 7 | #include "map_type_bronson_avltree.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_BronsonAVLTreeMap( Map_InsDel_string, run_test, std::string, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdel_string/map_insdel_string_cuckoo.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdel_string.h" 7 | #include "map_type_cuckoo.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_CuckooMap( Map_InsDel_string, run_test, std::string, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdel_string/map_insdel_string_ellentree.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdel_string.h" 7 | #include "map_type_ellen_bintree.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_EllenBinTreeMap( Map_InsDel_string, run_test, std::string, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdel_string/map_insdel_string_feldman_hashset.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdel_string.h" 7 | #include "map_type_feldman_hashmap.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_FeldmanHashMap_stdhash( Map_InsDel_string_stdhash, run_test, std::string, size_t ) 12 | #if CDS_BUILD_BITS == 64 13 | CDSSTRESS_FeldmanHashMap_city64( Map_InsDel_string_city64, run_test, std::string, size_t ) 14 | CDSSTRESS_FeldmanHashMap_city128( Map_InsDel_string_city128, run_test, std::string, size_t ) 15 | #endif 16 | 17 | } // namespace map 18 | -------------------------------------------------------------------------------- /test/stress/map/insdel_string/map_insdel_string_michael.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdel_string.h" 7 | #include "map_type_michael.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_MichaelMap( Map_InsDel_string_LF, run_test, std::string, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdel_string/map_insdel_string_skip.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdel_string.h" 7 | #include "map_type_skip_list.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_SkipListMap( Map_InsDel_string, run_test, std::string, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdel_string/map_insdel_string_split.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdel_string.h" 7 | #include "map_type_split_list.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_SplitListMap( Map_InsDel_string_LF, run_test, std::string, size_t ) 12 | CDSSTRESS_SplitListIterableMap( Map_InsDel_string_LF, run_test, std::string, size_t ) 13 | 14 | } // namespace map 15 | -------------------------------------------------------------------------------- /test/stress/map/insdel_string/map_insdel_string_std.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdel_string.h" 7 | #include "map_type_std.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_StdMap( Map_InsDel_string, run_test, std::string, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdel_string/map_insdel_string_striped.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdel_string.h" 7 | #include "map_type_striped.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_StripedMap( Map_InsDel_string_LF, run_test, std::string, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdelfind/map_insdelfind_bronsonavltree.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdelfind.h" 7 | #include "map_type_bronson_avltree.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_BronsonAVLTreeMap( Map_InsDelFind, run_test, size_t, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdelfind/map_insdelfind_cuckoo.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdelfind.h" 7 | #include "map_type_cuckoo.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_CuckooMap( Map_InsDelFind, run_test, size_t, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdelfind/map_insdelfind_ellentree_hp.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdelfind.h" 7 | #include "map_type_ellen_bintree.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_EllenBinTreeMap_HP( Map_InsDelFind, run_test, size_t, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdelfind/map_insdelfind_ellentree_rcu.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdelfind.h" 7 | #include "map_type_ellen_bintree.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_EllenBinTreeMap_RCU( Map_InsDelFind, run_test, size_t, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdelfind/map_insdelfind_feldman_hashset_hp.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdelfind.h" 7 | #include "map_type_feldman_hashmap.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_FeldmanHashMap_fixed_HP( Map_InsDelFind, run_test, size_t, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdelfind/map_insdelfind_feldman_hashset_rcu.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdelfind.h" 7 | #include "map_type_feldman_hashmap.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_FeldmanHashMap_fixed_RCU( Map_InsDelFind, run_test, size_t, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdelfind/map_insdelfind_michael_hp.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdelfind.h" 7 | #include "map_type_michael.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_MichaelMap_HP( Map_InsDelFind_LF, run_test, size_t, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdelfind/map_insdelfind_michael_rcu.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdelfind.h" 7 | #include "map_type_michael.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_MichaelMap_RCU( Map_InsDelFind_LF, run_test, size_t, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdelfind/map_insdelfind_skip_hp.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdelfind.h" 7 | #include "map_type_skip_list.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_SkipListMap_HP( Map_InsDelFind, run_test, size_t, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdelfind/map_insdelfind_skip_rcu.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdelfind.h" 7 | #include "map_type_skip_list.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_SkipListMap_RCU( Map_InsDelFind, run_test, size_t, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdelfind/map_insdelfind_split_hp.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdelfind.h" 7 | #include "map_type_split_list.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_SplitListMap_HP( Map_InsDelFind_LF, run_test, size_t, size_t ) 12 | CDSSTRESS_SplitListIterableMap( Map_InsDelFind_LF, run_test, size_t, size_t ) 13 | 14 | } // namespace map 15 | -------------------------------------------------------------------------------- /test/stress/map/insdelfind/map_insdelfind_split_rcu.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdelfind.h" 7 | #include "map_type_split_list.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_SplitListMap_RCU( Map_InsDelFind_LF, run_test, size_t, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdelfind/map_insdelfind_std.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdelfind.h" 7 | #include "map_type_std.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_StdMap( Map_InsDelFind, run_test, size_t, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/insdelfind/map_insdelfind_striped.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_insdelfind.h" 7 | #include "map_type_striped.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_StripedMap( Map_InsDelFind_LF, run_test, size_t, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/iter_erase/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(PACKAGE_NAME stress-map-iter-erase) 2 | 3 | set(CDSSTRESS_MAP_ITER_ERASE_SOURCES 4 | ../../main.cpp 5 | map_iter_erase.cpp 6 | map_iter_erase_feldman_hashmap.cpp 7 | map_iter_erase_michael.cpp 8 | map_iter_erase_split.cpp 9 | ) 10 | 11 | include_directories( 12 | ${CMAKE_CURRENT_SOURCE_DIR} 13 | ${CMAKE_CURRENT_SOURCE_DIR}/.. 14 | ) 15 | 16 | add_executable(${PACKAGE_NAME} ${CDSSTRESS_MAP_ITER_ERASE_SOURCES}) 17 | target_link_libraries(${PACKAGE_NAME} ${CDS_TEST_LIBRARIES} ${CDSSTRESS_FRAMEWORK_LIBRARY}) 18 | strip_binary(${PACKAGE_NAME}) 19 | add_test(NAME ${PACKAGE_NAME} COMMAND ${PACKAGE_NAME} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}) -------------------------------------------------------------------------------- /test/stress/map/iter_erase/map_iter_erase_michael.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_iter_erase.h" 7 | #include "map_type_michael.h" 8 | 9 | namespace map { 10 | 11 | // Test is too long 12 | // CDSSTRESS_MichaelMap_Iterable( Map_Iter_Del3_LF, run_test_extract, key_thread, size_t ) 13 | 14 | } // namespace map 15 | -------------------------------------------------------------------------------- /test/stress/map/iter_erase/map_iter_erase_split.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_iter_erase.h" 7 | #include "map_type_split_list.h" 8 | 9 | namespace map { 10 | // Too long 11 | //CDSSTRESS_SplitListIterableMap( Map_Iter_Del3_LF, run_test_extract, key_thread, size_t ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/minmax/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(PACKAGE_NAME stress-map-minmax) 2 | 3 | set(CDSSTRESS_MAP_MINMAX_SOURCES 4 | ../../main.cpp 5 | map_minmax.cpp 6 | map_minmax_bronsonavltree.cpp 7 | map_minmax_ellentree.cpp 8 | map_minmax_skip.cpp 9 | ) 10 | 11 | include_directories( 12 | ${CMAKE_CURRENT_SOURCE_DIR} 13 | ${CMAKE_CURRENT_SOURCE_DIR}/.. 14 | ) 15 | 16 | add_executable(${PACKAGE_NAME} ${CDSSTRESS_MAP_MINMAX_SOURCES}) 17 | target_link_libraries(${PACKAGE_NAME} ${CDS_TEST_LIBRARIES} ${CDSSTRESS_FRAMEWORK_LIBRARY}) 18 | strip_binary(${PACKAGE_NAME}) 19 | add_test(NAME ${PACKAGE_NAME} COMMAND ${PACKAGE_NAME} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}) -------------------------------------------------------------------------------- /test/stress/map/minmax/map_minmax_bronsonavltree.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_minmax.h" 7 | #include "map_type_bronson_avltree.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_BronsonAVLTreeMap( Map_MinMax, run_test, int, int ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/minmax/map_minmax_ellentree.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_minmax.h" 7 | #include "map_type_ellen_bintree.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_EllenBinTreeMap( Map_MinMax, run_test, int, int ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/map/minmax/map_minmax_skip.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "map_minmax.h" 7 | #include "map_type_skip_list.h" 8 | 9 | namespace map { 10 | 11 | CDSSTRESS_SkipListMap( Map_MinMax, run_test, int, int ) 12 | 13 | } // namespace map 14 | -------------------------------------------------------------------------------- /test/stress/pqueue/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(PACKAGE_NAME stress-pqueue) 2 | 3 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DCDSUNIT_USE_URCU") 4 | 5 | set(CDSSTRESS_PQUEUE_SOURCES 6 | ../main.cpp 7 | pop.cpp 8 | push.cpp 9 | push_pop.cpp 10 | ) 11 | 12 | include_directories( 13 | ${CMAKE_CURRENT_SOURCE_DIR} 14 | ) 15 | 16 | add_executable(${PACKAGE_NAME} ${CDSSTRESS_PQUEUE_SOURCES}) 17 | target_link_libraries(${PACKAGE_NAME} ${CDS_TEST_LIBRARIES} ${CDSSTRESS_FRAMEWORK_LIBRARY}) 18 | strip_binary(${PACKAGE_NAME}) 19 | add_test(NAME ${PACKAGE_NAME} COMMAND ${PACKAGE_NAME} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}) -------------------------------------------------------------------------------- /test/stress/set/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DCDSUNIT_USE_URCU") 3 | 4 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/delodd) 5 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/del3) 6 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/insdel_find) 7 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/insdel_func) 8 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/insdel_string) 9 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/iteration) 10 | add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/iter_erase) 11 | 12 | add_custom_target( stress-set 13 | DEPENDS 14 | stress-set-delodd 15 | stress-set-del3 16 | stress-set-insdelfind 17 | stress-set-insdel-func 18 | stress-set-insdel-string 19 | stress-set-iteration 20 | stress-set-iter-erase 21 | ) 22 | -------------------------------------------------------------------------------- /test/stress/set/del3/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(PACKAGE_NAME stress-set-del3) 2 | 3 | set(CDSSTRESS_SET_DEL3_SOURCES 4 | ../../main.cpp 5 | set_del3.cpp 6 | set_del3_cuckoo.cpp 7 | set_del3_ellentree.cpp 8 | set_del3_feldman_hashset.cpp 9 | set_del3_michael.cpp 10 | set_del3_skip.cpp 11 | set_del3_split.cpp 12 | ) 13 | 14 | include_directories( 15 | ${CMAKE_CURRENT_SOURCE_DIR} 16 | ${CMAKE_CURRENT_SOURCE_DIR}/.. 17 | ) 18 | 19 | add_executable(${PACKAGE_NAME} ${CDSSTRESS_SET_DEL3_SOURCES}) 20 | target_link_libraries(${PACKAGE_NAME} ${CDS_TEST_LIBRARIES} ${CDSSTRESS_FRAMEWORK_LIBRARY}) 21 | strip_binary(${PACKAGE_NAME}) 22 | add_test(NAME ${PACKAGE_NAME} COMMAND ${PACKAGE_NAME} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}) -------------------------------------------------------------------------------- /test/stress/set/del3/set_del3_cuckoo.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_del3.h" 7 | #include "set_type_cuckoo.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_CuckooSet( Set_Del3, run_test, key_thread, size_t ) 12 | 13 | } // namespace set 14 | -------------------------------------------------------------------------------- /test/stress/set/del3/set_del3_ellentree.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_del3.h" 7 | #include "set_type_ellen_bintree.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_EllenBinTreeSet( Set_Del3, run_test_extract, key_thread, size_t ) 12 | 13 | } // namespace set 14 | -------------------------------------------------------------------------------- /test/stress/set/del3/set_del3_michael.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_del3.h" 7 | #include "set_type_michael.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_MichaelSet( Set_Del3_LF, run_test_extract, key_thread, size_t ) 12 | CDSSTRESS_MichaelIterableSet( Set_Del3_LF, run_test_extract, key_thread, size_t ) 13 | 14 | } // namespace set 15 | -------------------------------------------------------------------------------- /test/stress/set/del3/set_del3_skip.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_del3.h" 7 | #include "set_type_skip_list.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_SkipListSet( Set_Del3, run_test_extract, key_thread, size_t ) 12 | 13 | } // namespace set 14 | -------------------------------------------------------------------------------- /test/stress/set/del3/set_del3_split.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_del3.h" 7 | #include "set_type_split_list.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_SplitListSet( Set_Del3_LF, run_test_extract, key_thread, size_t ) 12 | CDSSTRESS_SplitListIterableSet( Set_Del3_LF, run_test_extract, key_thread, size_t ) 13 | 14 | 15 | } // namespace set 16 | -------------------------------------------------------------------------------- /test/stress/set/delodd/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(PACKAGE_NAME stress-set-delodd) 2 | 3 | set(CDSSTRESS_SET_DELODD_SOURCES 4 | ../../main.cpp 5 | set_delodd.cpp 6 | set_delodd_cuckoo.cpp 7 | set_delodd_ellentree.cpp 8 | set_delodd_feldman_hashset.cpp 9 | set_delodd_michael.cpp 10 | set_delodd_skip.cpp 11 | set_delodd_split.cpp 12 | ) 13 | 14 | include_directories( 15 | ${CMAKE_CURRENT_SOURCE_DIR} 16 | ${CMAKE_CURRENT_SOURCE_DIR}/.. 17 | ) 18 | 19 | add_executable(${PACKAGE_NAME} ${CDSSTRESS_SET_DELODD_SOURCES}) 20 | target_link_libraries(${PACKAGE_NAME} ${CDS_TEST_LIBRARIES} ${CDSSTRESS_FRAMEWORK_LIBRARY}) 21 | strip_binary(${PACKAGE_NAME}) 22 | add_test(NAME ${PACKAGE_NAME} COMMAND ${PACKAGE_NAME} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}) -------------------------------------------------------------------------------- /test/stress/set/delodd/set_delodd_cuckoo.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_delodd.h" 7 | #include "set_type_cuckoo.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_CuckooSet( Set_DelOdd, run_test, key_thread, size_t ) 12 | 13 | } // namespace set 14 | -------------------------------------------------------------------------------- /test/stress/set/delodd/set_delodd_ellentree.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_delodd.h" 7 | #include "set_type_ellen_bintree.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_EllenBinTreeSet( Set_DelOdd, run_test_extract, key_thread, size_t ) 12 | 13 | } // namespace set 14 | -------------------------------------------------------------------------------- /test/stress/set/delodd/set_delodd_michael.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_delodd.h" 7 | #include "set_type_michael.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_MichaelSet( Set_DelOdd_LF, run_test_extract, key_thread, size_t ) 12 | CDSSTRESS_MichaelIterableSet( Set_DelOdd_LF, run_test_extract, key_thread, size_t ) 13 | 14 | } // namespace set 15 | -------------------------------------------------------------------------------- /test/stress/set/delodd/set_delodd_skip.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_delodd.h" 7 | #include "set_type_skip_list.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_SkipListSet( Set_DelOdd, run_test_extract, key_thread, size_t ) 12 | 13 | } // namespace set 14 | -------------------------------------------------------------------------------- /test/stress/set/delodd/set_delodd_split.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_delodd.h" 7 | #include "set_type_split_list.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_SplitListSet( Set_DelOdd_LF, run_test_extract, key_thread, size_t ) 12 | CDSSTRESS_SplitListIterableSet( Set_DelOdd_LF, run_test_extract, key_thread, size_t ) 13 | 14 | 15 | } // namespace set 16 | -------------------------------------------------------------------------------- /test/stress/set/insdel_find/set_insdelfind_cuckoo.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_insdelfind.h" 7 | #include "set_type_cuckoo.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_CuckooSet( Set_InsDelFind, run_test, size_t, size_t ) 12 | 13 | } // namespace set 14 | -------------------------------------------------------------------------------- /test/stress/set/insdel_find/set_insdelfind_ellentree_hp.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_insdelfind.h" 7 | #include "set_type_ellen_bintree.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_EllenBinTreeSet_HP( Set_InsDelFind, run_test, size_t, size_t ) 12 | 13 | } // namespace set 14 | -------------------------------------------------------------------------------- /test/stress/set/insdel_find/set_insdelfind_ellentree_rcu.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_insdelfind.h" 7 | #include "set_type_ellen_bintree.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_EllenBinTreeSet_RCU( Set_InsDelFind, run_test, size_t, size_t ) 12 | 13 | } // namespace set 14 | -------------------------------------------------------------------------------- /test/stress/set/insdel_find/set_insdelfind_feldman_hashset_hp.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_insdelfind.h" 7 | #include "set_type_feldman_hashset.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_FeldmanHashSet_fixed_HP( Set_InsDelFind, run_test, size_t, size_t ) 12 | 13 | } // namespace set 14 | -------------------------------------------------------------------------------- /test/stress/set/insdel_find/set_insdelfind_feldman_hashset_rcu.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_insdelfind.h" 7 | #include "set_type_feldman_hashset.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_FeldmanHashSet_fixed_RCU( Set_InsDelFind, run_test, size_t, size_t ) 12 | 13 | } // namespace set 14 | -------------------------------------------------------------------------------- /test/stress/set/insdel_find/set_insdelfind_michael_hp.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_insdelfind.h" 7 | #include "set_type_michael.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_MichaelSet_HP( Set_InsDelFind_LF, run_test, size_t, size_t ) 12 | CDSSTRESS_MichaelIterableSet( Set_InsDelFind_LF, run_test, size_t, size_t ) 13 | 14 | } // namespace set 15 | -------------------------------------------------------------------------------- /test/stress/set/insdel_find/set_insdelfind_michael_rcu.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_insdelfind.h" 7 | #include "set_type_michael.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_MichaelSet_RCU( Set_InsDelFind_LF, run_test, size_t, size_t ) 12 | 13 | } // namespace set 14 | -------------------------------------------------------------------------------- /test/stress/set/insdel_find/set_insdelfind_skip_hp.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_insdelfind.h" 7 | #include "set_type_skip_list.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_SkipListSet_HP( Set_InsDelFind, run_test, size_t, size_t ) 12 | 13 | } // namespace set 14 | -------------------------------------------------------------------------------- /test/stress/set/insdel_find/set_insdelfind_skip_rcu.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_insdelfind.h" 7 | #include "set_type_skip_list.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_SkipListSet_RCU( Set_InsDelFind, run_test, size_t, size_t ) 12 | 13 | } // namespace set 14 | -------------------------------------------------------------------------------- /test/stress/set/insdel_find/set_insdelfind_split_hp.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_insdelfind.h" 7 | #include "set_type_split_list.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_SplitListSet_HP( Set_InsDelFind_LF, run_test, size_t, size_t ) 12 | CDSSTRESS_SplitListIterableSet( Set_InsDelFind_LF, run_test, size_t, size_t ) 13 | 14 | } // namespace set 15 | -------------------------------------------------------------------------------- /test/stress/set/insdel_find/set_insdelfind_split_rcu.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_insdelfind.h" 7 | #include "set_type_split_list.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_SplitListSet_RCU( Set_InsDelFind_LF, run_test, size_t, size_t ) 12 | 13 | } // namespace set 14 | -------------------------------------------------------------------------------- /test/stress/set/insdel_find/set_insdelfind_std.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_insdelfind.h" 7 | #include "set_type_std.h" 8 | 9 | namespace set { 10 | CDSSTRESS_StdSet( Set_InsDelFind, run_test, size_t, size_t ) 11 | } // namespace set 12 | 13 | -------------------------------------------------------------------------------- /test/stress/set/insdel_find/set_insdelfind_striped.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_insdelfind.h" 7 | #include "set_type_striped.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_StripedSet( Set_InsDelFind_LF, run_test, size_t, size_t ) 12 | 13 | } // namespace set 14 | 15 | -------------------------------------------------------------------------------- /test/stress/set/insdel_func/set_insdel_func_cuckoo.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_insdel_func.h" 7 | #include "set_type_cuckoo.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_CuckooSet( Set_InsDel_func, run_test, size_t, value ) 12 | 13 | } // namespace set 14 | -------------------------------------------------------------------------------- /test/stress/set/insdel_func/set_insdel_func_ellentree.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_insdel_func.h" 7 | #include "set_type_ellen_bintree.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_EllenBinTreeSet( Set_InsDel_func, run_test, size_t, value ) 12 | 13 | } // namespace set 14 | -------------------------------------------------------------------------------- /test/stress/set/insdel_func/set_insdel_func_feldman_hashset.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_insdel_func.h" 7 | #include "set_type_feldman_hashset.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_FeldmanHashSet_fixed( Set_InsDel_func, run_test, size_t, value ) 12 | 13 | } // namespace set 14 | -------------------------------------------------------------------------------- /test/stress/set/insdel_func/set_insdel_func_michael.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_insdel_func.h" 7 | #include "set_type_michael.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_MichaelSet( Set_InsDel_func_LF, run_test2, size_t, value ) 12 | CDSSTRESS_MichaelIterableSet( Set_InsDel_func_LF, run_test2, size_t, value ) 13 | 14 | } // namespace set 15 | -------------------------------------------------------------------------------- /test/stress/set/insdel_func/set_insdel_func_skip.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_insdel_func.h" 7 | #include "set_type_skip_list.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_SkipListSet( Set_InsDel_func, run_test, size_t, value ) 12 | 13 | } // namespace set 14 | -------------------------------------------------------------------------------- /test/stress/set/insdel_func/set_insdel_func_split.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_insdel_func.h" 7 | #include "set_type_split_list.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_SplitListSet( Set_InsDel_func_LF, run_test, size_t, value ) 12 | CDSSTRESS_SplitListIterableSet( Set_InsDel_func_LF, run_test, size_t, value ) 13 | 14 | } // namespace set 15 | -------------------------------------------------------------------------------- /test/stress/set/insdel_func/set_insdel_func_striped.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_insdel_func.h" 7 | #include "set_type_striped.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_StripedSet( Set_InsDel_func_LF, run_test, size_t, value ) 12 | 13 | } // namespace set 14 | 15 | -------------------------------------------------------------------------------- /test/stress/set/insdel_string/set_insdel_string_cuckoo.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_insdel_string.h" 7 | #include "set_type_cuckoo.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_CuckooSet( Set_InsDel_string, run_test, std::string, size_t ) 12 | 13 | } // namespace set 14 | -------------------------------------------------------------------------------- /test/stress/set/insdel_string/set_insdel_string_ellentree.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_insdel_string.h" 7 | #include "set_type_ellen_bintree.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_EllenBinTreeSet( Set_InsDel_string, run_test_extract, std::string, size_t ) 12 | 13 | } // namespace set 14 | -------------------------------------------------------------------------------- /test/stress/set/insdel_string/set_insdel_string_feldman_hashset.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_insdel_string.h" 7 | #include "set_type_feldman_hashset.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_FeldmanHashSet_stdhash( Set_InsDel_string, run_test_extract, std::string, size_t ) 12 | CDSSTRESS_FeldmanHashSet_city( Set_InsDel_string, run_test_extract, std::string, size_t ) 13 | 14 | } // namespace set 15 | -------------------------------------------------------------------------------- /test/stress/set/insdel_string/set_insdel_string_michael.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_insdel_string.h" 7 | #include "set_type_michael.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_MichaelSet( Set_InsDel_string_LF, run_test_extract, std::string, size_t ) 12 | CDSSTRESS_MichaelIterableSet( Set_InsDel_string_LF, run_test_extract, std::string, size_t ) 13 | 14 | } // namespace set 15 | -------------------------------------------------------------------------------- /test/stress/set/insdel_string/set_insdel_string_skip.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_insdel_string.h" 7 | #include "set_type_skip_list.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_SkipListSet( Set_InsDel_string, run_test_extract, std::string, size_t ) 12 | 13 | } // namespace set 14 | -------------------------------------------------------------------------------- /test/stress/set/insdel_string/set_insdel_string_split.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_insdel_string.h" 7 | #include "set_type_split_list.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_SplitListSet( Set_InsDel_string_LF, run_test_extract, std::string, size_t ) 12 | CDSSTRESS_SplitListIterableSet( Set_InsDel_string_LF, run_test_extract, std::string, size_t ) 13 | 14 | } // namespace set 15 | -------------------------------------------------------------------------------- /test/stress/set/insdel_string/set_insdel_string_std.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_insdel_string.h" 7 | #include "set_type_std.h" 8 | 9 | namespace set { 10 | CDSSTRESS_StdSet( Set_InsDel_string, run_test, std::string, size_t ) 11 | } // namespace set 12 | 13 | -------------------------------------------------------------------------------- /test/stress/set/insdel_string/set_insdel_string_striped.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_insdel_string.h" 7 | #include "set_type_striped.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_StripedSet( Set_InsDel_string_LF, run_test, std::string, size_t ) 12 | 13 | } // namespace set 14 | 15 | -------------------------------------------------------------------------------- /test/stress/set/iter_erase/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(PACKAGE_NAME stress-set-iter-erase) 2 | 3 | set(CDSSTRESS_SET_ITER_ERASE_SOURCES 4 | ../../main.cpp 5 | set_iter_erase.cpp 6 | set_iter_erase_feldman_hashset.cpp 7 | set_iter_erase_michael.cpp 8 | set_iter_erase_split.cpp 9 | ) 10 | 11 | include_directories( 12 | ${CMAKE_CURRENT_SOURCE_DIR} 13 | ${CMAKE_CURRENT_SOURCE_DIR}/.. 14 | ) 15 | 16 | add_executable(${PACKAGE_NAME} ${CDSSTRESS_SET_ITER_ERASE_SOURCES}) 17 | target_link_libraries(${PACKAGE_NAME} ${CDS_TEST_LIBRARIES} ${CDSSTRESS_FRAMEWORK_LIBRARY}) 18 | strip_binary(${PACKAGE_NAME}) 19 | add_test(NAME ${PACKAGE_NAME} COMMAND ${PACKAGE_NAME} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}) -------------------------------------------------------------------------------- /test/stress/set/iter_erase/set_iter_erase_michael.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_iter_erase.h" 7 | #include "set_type_michael.h" 8 | 9 | namespace set { 10 | 11 | // Test is too long 12 | //CDSSTRESS_MichaelIterableSet( Set_Iter_Del3_LF, run_test_extract, key_thread, size_t ) 13 | 14 | } // namespace set 15 | -------------------------------------------------------------------------------- /test/stress/set/iter_erase/set_iter_erase_split.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_iter_erase.h" 7 | #include "set_type_split_list.h" 8 | 9 | namespace set { 10 | // Too long 11 | //CDSSTRESS_SplitListIterableSet( Set_Iter_Del3_LF, run_test_extract, key_thread, size_t ) 12 | 13 | } // namespace set 14 | -------------------------------------------------------------------------------- /test/stress/set/iteration/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(PACKAGE_NAME stress-set-iteration) 2 | 3 | set(CDSSTRESS_SET_ITERATION_SOURCES 4 | ../../main.cpp 5 | set_iteration.cpp 6 | set_iteration_feldman_hashset.cpp 7 | set_iteration_michael.cpp 8 | ) 9 | 10 | include_directories( 11 | ${CMAKE_CURRENT_SOURCE_DIR} 12 | ${CMAKE_CURRENT_SOURCE_DIR}/.. 13 | ) 14 | 15 | add_executable(${PACKAGE_NAME} ${CDSSTRESS_SET_ITERATION_SOURCES}) 16 | target_link_libraries(${PACKAGE_NAME} ${CDS_TEST_LIBRARIES} ${CDSSTRESS_FRAMEWORK_LIBRARY}) 17 | strip_binary(${PACKAGE_NAME}) 18 | add_test(NAME ${PACKAGE_NAME} COMMAND ${PACKAGE_NAME} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}) -------------------------------------------------------------------------------- /test/stress/set/iteration/set_iteration_feldman_hashset.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_iteration.h" 7 | #include "set_type_feldman_hashset.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_FeldmanHashSet_stdhash( Set_Iteration, run_test_extract, std::string, Set_Iteration::value_type ) 12 | CDSSTRESS_FeldmanHashSet_city( Set_Iteration, run_test_extract, std::string, Set_Iteration::value_type ) 13 | 14 | } // namespace set 15 | -------------------------------------------------------------------------------- /test/stress/set/iteration/set_iteration_michael.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_iteration.h" 7 | #include "set_type_michael.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_MichaelIterableSet( Set_Iteration_LF, run_test_extract, std::string, Set_Iteration::value_type ) 12 | 13 | } // namespace set 14 | -------------------------------------------------------------------------------- /test/stress/set/iteration/set_iteration_split.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include "set_iteration.h" 7 | #include "set_type_split_list.h" 8 | 9 | namespace set { 10 | 11 | CDSSTRESS_SplitListIterableSet( Set_Iteration_LF, run_test_extract, std::string, Set_Iteration::value_type ) 12 | 13 | } // namespace set 14 | -------------------------------------------------------------------------------- /test/stress/stack/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(PACKAGE_NAME stress-stack) 2 | 3 | set(CDSSTRESS_STACK_SOURCES 4 | ../main.cpp 5 | intrusive_push_pop.cpp 6 | intrusive_push_pop_fcstack.cpp 7 | push.cpp 8 | push_pop.cpp 9 | ) 10 | 11 | include_directories( 12 | ${CMAKE_CURRENT_SOURCE_DIR} 13 | ) 14 | 15 | add_executable(${PACKAGE_NAME} ${CDSSTRESS_STACK_SOURCES}) 16 | target_link_libraries(${PACKAGE_NAME} ${CDS_TEST_LIBRARIES} ${CDSSTRESS_FRAMEWORK_LIBRARY}) 17 | strip_binary(${PACKAGE_NAME}) 18 | add_test(NAME ${PACKAGE_NAME} COMMAND ${PACKAGE_NAME} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}) -------------------------------------------------------------------------------- /test/unit/deque/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(PACKAGE_NAME unit-deque) 2 | 3 | set(CDSGTEST_DEQUE_SOURCES 4 | ../main.cpp 5 | fcdeque.cpp 6 | ) 7 | 8 | include_directories( 9 | ${CMAKE_CURRENT_SOURCE_DIR} 10 | ) 11 | 12 | add_executable(${PACKAGE_NAME} ${CDSGTEST_DEQUE_SOURCES}) 13 | target_link_libraries(${PACKAGE_NAME} ${CDS_TEST_LIBRARIES}) 14 | strip_binary(${PACKAGE_NAME}) 15 | add_test(NAME ${PACKAGE_NAME} COMMAND ${PACKAGE_NAME} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}) -------------------------------------------------------------------------------- /test/unit/intrusive-list/intrusive_lazy_rcu_gpb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_intrusive_lazy_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_buffered<> rcu_implementation; 13 | typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, IntrusiveLazyList, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, IntrusiveLazyList, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/intrusive-list/intrusive_lazy_rcu_gpi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_intrusive_lazy_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_instant<> rcu_implementation; 13 | typedef cds::urcu::general_instant_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, IntrusiveLazyList, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, IntrusiveLazyList, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/intrusive-list/intrusive_lazy_rcu_gpt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_intrusive_lazy_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_threaded<> rcu_implementation; 13 | typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, IntrusiveLazyList, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, IntrusiveLazyList, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/intrusive-list/intrusive_michael_rcu_gpb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_intrusive_michael_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_buffered<> rcu_implementation; 13 | typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, IntrusiveMichaelList, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, IntrusiveMichaelList, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/intrusive-list/intrusive_michael_rcu_gpi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_intrusive_michael_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_instant<> rcu_implementation; 13 | typedef cds::urcu::general_instant_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, IntrusiveMichaelList, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, IntrusiveMichaelList, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/intrusive-list/intrusive_michael_rcu_gpt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_intrusive_michael_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_threaded<> rcu_implementation; 13 | typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, IntrusiveMichaelList, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, IntrusiveMichaelList, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/intrusive-set/intrusive_feldman_hashset_rcu_gpb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_intrusive_feldman_hashset_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_buffered<> rcu_implementation; 13 | typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, IntrusiveFeldmanHashSet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, IntrusiveFeldmanHashSet, rcu_implementation_stripped ); 19 | 20 | -------------------------------------------------------------------------------- /test/unit/intrusive-set/intrusive_feldman_hashset_rcu_gpi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_intrusive_feldman_hashset_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_instant<> rcu_implementation; 13 | typedef cds::urcu::general_instant_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, IntrusiveFeldmanHashSet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, IntrusiveFeldmanHashSet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/intrusive-set/intrusive_feldman_hashset_rcu_gpt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_intrusive_feldman_hashset_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_threaded<> rcu_implementation; 13 | typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, IntrusiveFeldmanHashSet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, IntrusiveFeldmanHashSet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/intrusive-set/intrusive_michael_lazy_rcu_gpb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_intrusive_michael_lazy_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_buffered<> rcu_implementation; 13 | typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, IntrusiveMichaelLazySet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, IntrusiveMichaelLazySet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/intrusive-set/intrusive_michael_lazy_rcu_gpi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_intrusive_michael_lazy_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_instant<> rcu_implementation; 13 | typedef cds::urcu::general_instant_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, IntrusiveMichaelLazySet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, IntrusiveMichaelLazySet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/intrusive-set/intrusive_michael_lazy_rcu_gpt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_intrusive_michael_lazy_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_threaded<> rcu_implementation; 13 | typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, IntrusiveMichaelLazySet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, IntrusiveMichaelLazySet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/intrusive-set/intrusive_michael_michael_rcu_gpb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_intrusive_michael_michael_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_buffered<> rcu_implementation; 13 | typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, IntrusiveMichaelSet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, IntrusiveMichaelSet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/intrusive-set/intrusive_michael_michael_rcu_gpi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_intrusive_michael_michael_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_instant<> rcu_implementation; 13 | typedef cds::urcu::general_instant_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, IntrusiveMichaelSet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, IntrusiveMichaelSet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/intrusive-set/intrusive_michael_michael_rcu_gpt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_intrusive_michael_michael_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_threaded<> rcu_implementation; 13 | typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, IntrusiveMichaelSet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, IntrusiveMichaelSet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/intrusive-set/intrusive_skiplist_rcu_gpb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_intrusive_skiplist_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_buffered<> rcu_implementation; 13 | typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, IntrusiveSkipListSet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, IntrusiveSkipListSet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/intrusive-set/intrusive_skiplist_rcu_gpi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_intrusive_skiplist_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_instant<> rcu_implementation; 13 | typedef cds::urcu::general_instant_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, IntrusiveSkipListSet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, IntrusiveSkipListSet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/intrusive-set/intrusive_skiplist_rcu_gpt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_intrusive_skiplist_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_threaded<> rcu_implementation; 13 | typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, IntrusiveSkipListSet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, IntrusiveSkipListSet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/intrusive-set/intrusive_split_lazy_rcu_gpb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_intrusive_split_lazy_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_buffered<> rcu_implementation; 13 | typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, IntrusiveSplitLazySet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, IntrusiveSplitLazySet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/intrusive-set/intrusive_split_lazy_rcu_gpi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_intrusive_split_lazy_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_instant<> rcu_implementation; 13 | typedef cds::urcu::general_instant_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, IntrusiveSplitLazySet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, IntrusiveSplitLazySet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/intrusive-set/intrusive_split_lazy_rcu_gpt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_intrusive_split_lazy_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_threaded<> rcu_implementation; 13 | typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, IntrusiveSplitLazySet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, IntrusiveSplitLazySet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/intrusive-set/intrusive_split_michael_rcu_gpb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_intrusive_split_michael_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_buffered<> rcu_implementation; 13 | typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, IntrusiveSplitMichaelSet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, IntrusiveSplitMichaelSet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/intrusive-set/intrusive_split_michael_rcu_gpi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_intrusive_split_michael_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_instant<> rcu_implementation; 13 | typedef cds::urcu::general_instant_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, IntrusiveSplitMichaelSet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, IntrusiveSplitMichaelSet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/intrusive-set/intrusive_split_michael_rcu_gpt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_intrusive_split_michael_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_threaded<> rcu_implementation; 13 | typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, IntrusiveSplitMichaelSet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, IntrusiveSplitMichaelSet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/list/kv_lazy_rcu_gpb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_kv_lazy_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_buffered<> rcu_implementation; 13 | typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, LazyKVList, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, LazyKVList, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/list/kv_lazy_rcu_gpi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_kv_lazy_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_instant<> rcu_implementation; 13 | typedef cds::urcu::general_instant_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, LazyKVList, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, LazyKVList, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/list/kv_lazy_rcu_gpt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_kv_lazy_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_threaded<> rcu_implementation; 13 | typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, LazyKVList, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, LazyKVList, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/list/kv_lazy_rcu_shb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED 9 | 10 | #include "test_kv_lazy_rcu.h" 11 | 12 | namespace { 13 | 14 | typedef cds::urcu::signal_buffered<> rcu_implementation; 15 | typedef cds::urcu::signal_buffered_stripped rcu_implementation_stripped; 16 | 17 | } // namespace 18 | 19 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB, LazyKVList, rcu_implementation ); 20 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB_stripped, LazyKVList, rcu_implementation_stripped ); 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /test/unit/list/kv_michael_rcu_gpb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_kv_michael_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_buffered<> rcu_implementation; 13 | typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, MichaelKVList, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, MichaelKVList, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/list/kv_michael_rcu_gpi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_kv_michael_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_instant<> rcu_implementation; 13 | typedef cds::urcu::general_instant_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, MichaelKVList, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, MichaelKVList, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/list/kv_michael_rcu_gpt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_kv_michael_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_threaded<> rcu_implementation; 13 | typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, MichaelKVList, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, MichaelKVList, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/list/kv_michael_rcu_shb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED 9 | 10 | #include "test_kv_michael_rcu.h" 11 | 12 | namespace { 13 | 14 | typedef cds::urcu::signal_buffered<> rcu_implementation; 15 | typedef cds::urcu::signal_buffered_stripped rcu_implementation_stripped; 16 | 17 | } // namespace 18 | 19 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB, MichaelKVList, rcu_implementation ); 20 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB_stripped, MichaelKVList, rcu_implementation_stripped ); 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /test/unit/list/lazy_rcu_gpb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_lazy_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_buffered<> rcu_implementation; 13 | typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, LazyList, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, LazyList, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/list/lazy_rcu_gpi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_lazy_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_instant<> rcu_implementation; 13 | typedef cds::urcu::general_instant_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, LazyList, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, LazyList, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/list/lazy_rcu_gpt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_lazy_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_threaded<> rcu_implementation; 13 | typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, LazyList, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, LazyList, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/list/lazy_rcu_shb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED 9 | 10 | #include "test_lazy_rcu.h" 11 | 12 | namespace { 13 | 14 | typedef cds::urcu::signal_buffered<> rcu_implementation; 15 | typedef cds::urcu::signal_buffered_stripped rcu_implementation_stripped; 16 | 17 | } // namespace 18 | 19 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB, LazyList, rcu_implementation ); 20 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB_stripped, LazyList, rcu_implementation_stripped ); 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /test/unit/list/michael_rcu_gpb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_michael_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_buffered<> rcu_implementation; 13 | typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, MichaelList, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, MichaelList, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/list/michael_rcu_gpi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_michael_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_instant<> rcu_implementation; 13 | typedef cds::urcu::general_instant_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, MichaelList, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, MichaelList, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/list/michael_rcu_gpt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_michael_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_threaded<> rcu_implementation; 13 | typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, MichaelList, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, MichaelList, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/list/michael_rcu_shb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED 9 | 10 | #include "test_michael_rcu.h" 11 | 12 | namespace { 13 | 14 | typedef cds::urcu::signal_buffered<> rcu_implementation; 15 | typedef cds::urcu::signal_buffered_stripped rcu_implementation_stripped; 16 | 17 | } // namespace 18 | 19 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB, MichaelList, rcu_implementation ); 20 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB_stripped, MichaelList, rcu_implementation_stripped ); 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /test/unit/main.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | #include 8 | 9 | #include 10 | 11 | namespace cds_test { 12 | /*static*/ std::random_device fixture::random_dev_; 13 | /*static*/ std::mt19937 fixture::random_gen_( random_dev_()); 14 | } // namespace cds_test 15 | 16 | int main( int argc, char **argv ) 17 | { 18 | int result; 19 | cds::Initialize(); 20 | { 21 | ::testing::InitGoogleTest( &argc, argv ); 22 | result = RUN_ALL_TESTS(); 23 | } 24 | cds::Terminate(); 25 | return result; 26 | } 27 | -------------------------------------------------------------------------------- /test/unit/map/feldman_hashset_rcu_gpb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_feldman_hashmap_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_buffered<> rcu_implementation; 13 | typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, FeldmanHashMap, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, FeldmanHashMap, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/map/feldman_hashset_rcu_gpi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_feldman_hashmap_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_instant<> rcu_implementation; 13 | typedef cds::urcu::general_instant_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, FeldmanHashMap, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, FeldmanHashMap, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/map/feldman_hashset_rcu_gpt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_feldman_hashmap_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_threaded<> rcu_implementation; 13 | typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, FeldmanHashMap, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, FeldmanHashMap, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/map/feldman_hashset_rcu_shb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED 9 | 10 | #include "test_feldman_hashmap_rcu.h" 11 | 12 | namespace { 13 | 14 | typedef cds::urcu::signal_buffered<> rcu_implementation; 15 | typedef cds::urcu::signal_buffered_stripped rcu_implementation_stripped; 16 | 17 | } // namespace 18 | 19 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB, FeldmanHashMap, rcu_implementation ); 20 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB_stripped, FeldmanHashMap, rcu_implementation_stripped ); 21 | 22 | #endif // CDS_URCU_SIGNAL_HANDLING_ENABLED 23 | -------------------------------------------------------------------------------- /test/unit/map/michael_lazy_rcu_gpb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_michael_lazy_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_buffered<> rcu_implementation; 13 | typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, MichaelLazyMap, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, MichaelLazyMap, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/map/michael_lazy_rcu_gpi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_michael_lazy_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_instant<> rcu_implementation; 13 | typedef cds::urcu::general_instant_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, MichaelLazyMap, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, MichaelLazyMap, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/map/michael_lazy_rcu_gpt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_michael_lazy_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_threaded<> rcu_implementation; 13 | typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, MichaelLazyMap, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, MichaelLazyMap, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/map/michael_lazy_rcu_shb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED 9 | 10 | #include "test_michael_lazy_rcu.h" 11 | 12 | namespace { 13 | 14 | typedef cds::urcu::signal_buffered<> rcu_implementation; 15 | typedef cds::urcu::signal_buffered_stripped rcu_implementation_stripped; 16 | 17 | } // namespace 18 | 19 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB, MichaelLazyMap, rcu_implementation ); 20 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB_stripped, MichaelLazyMap, rcu_implementation_stripped ); 21 | 22 | #endif // CDS_URCU_SIGNAL_HANDLING_ENABLED 23 | -------------------------------------------------------------------------------- /test/unit/map/michael_michael_rcu_gpb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_michael_michael_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_buffered<> rcu_implementation; 13 | typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, MichaelMap, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, MichaelMap, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/map/michael_michael_rcu_gpi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_michael_michael_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_instant<> rcu_implementation; 13 | typedef cds::urcu::general_instant_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, MichaelMap, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, MichaelMap, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/map/michael_michael_rcu_gpt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_michael_michael_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_threaded<> rcu_implementation; 13 | typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, MichaelMap, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, MichaelMap, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/map/michael_michael_rcu_shb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED 9 | 10 | #include "test_michael_michael_rcu.h" 11 | 12 | namespace { 13 | 14 | typedef cds::urcu::signal_buffered<> rcu_implementation; 15 | typedef cds::urcu::signal_buffered_stripped rcu_implementation_stripped; 16 | 17 | } // namespace 18 | 19 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB, MichaelMap, rcu_implementation ); 20 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB_stripped, MichaelMap, rcu_implementation_stripped ); 21 | 22 | #endif // CDS_URCU_SIGNAL_HANDLING_ENABLED 23 | -------------------------------------------------------------------------------- /test/unit/map/skiplist_rcu_gpb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_skiplist_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_buffered<> rcu_implementation; 13 | typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, SkipListMap, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, SkipListMap, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/map/skiplist_rcu_gpi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_skiplist_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_instant<> rcu_implementation; 13 | typedef cds::urcu::general_instant_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, SkipListMap, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, SkipListMap, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/map/skiplist_rcu_gpt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_skiplist_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_threaded<> rcu_implementation; 13 | typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, SkipListMap, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, SkipListMap, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/map/skiplist_rcu_shb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED 9 | 10 | #include "test_skiplist_rcu.h" 11 | 12 | namespace { 13 | 14 | typedef cds::urcu::signal_buffered<> rcu_implementation; 15 | typedef cds::urcu::signal_buffered_stripped rcu_implementation_stripped; 16 | 17 | } // namespace 18 | 19 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB, SkipListMap, rcu_implementation ); 20 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB_stripped, SkipListMap, rcu_implementation_stripped ); 21 | 22 | #endif // CDS_URCU_SIGNAL_HANDLING_ENABLED 23 | -------------------------------------------------------------------------------- /test/unit/map/split_lazy_rcu_gpb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_split_lazy_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_buffered<> rcu_implementation; 13 | typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, SplitListLazyMap, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, SplitListLazyMap, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/map/split_lazy_rcu_gpi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_split_lazy_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_instant<> rcu_implementation; 13 | typedef cds::urcu::general_instant_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, SplitListLazyMap, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, SplitListLazyMap, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/map/split_lazy_rcu_gpt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_split_lazy_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_threaded<> rcu_implementation; 13 | typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, SplitListLazyMap, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, SplitListLazyMap, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/map/split_lazy_rcu_shb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED 9 | 10 | #include "test_split_lazy_rcu.h" 11 | 12 | namespace { 13 | 14 | typedef cds::urcu::signal_buffered<> rcu_implementation; 15 | typedef cds::urcu::signal_buffered_stripped rcu_implementation_stripped; 16 | 17 | } // namespace 18 | 19 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB, SplitListLazyMap, rcu_implementation ); 20 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB_stripped, SplitListLazyMap, rcu_implementation_stripped ); 21 | 22 | #endif // CDS_URCU_SIGNAL_HANDLING_ENABLED 23 | -------------------------------------------------------------------------------- /test/unit/map/split_michael_rcu_gpb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_split_michael_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_buffered<> rcu_implementation; 13 | typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, SplitListMichaelMap, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, SplitListMichaelMap, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/map/split_michael_rcu_gpi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_split_michael_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_instant<> rcu_implementation; 13 | typedef cds::urcu::general_instant_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, SplitListMichaelMap, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, SplitListMichaelMap, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/map/split_michael_rcu_gpt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_split_michael_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_threaded<> rcu_implementation; 13 | typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, SplitListMichaelMap, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, SplitListMichaelMap, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/misc/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(PACKAGE_NAME unit-misc) 2 | 3 | set(CDSGTEST_MISC_SOURCES 4 | ../main.cpp 5 | bitop.cpp 6 | cxx11_atomic_class.cpp 7 | cxx11_atomic_func.cpp 8 | find_option.cpp 9 | hash_tuple.cpp 10 | permutation_generator.cpp 11 | split_bitstring.cpp 12 | ) 13 | 14 | include_directories( 15 | ${CMAKE_CURRENT_SOURCE_DIR} 16 | ) 17 | 18 | add_executable(${PACKAGE_NAME} ${CDSGTEST_MISC_SOURCES}) 19 | target_link_libraries(${PACKAGE_NAME} ${CDS_TEST_LIBRARIES}) 20 | strip_binary(${PACKAGE_NAME}) 21 | add_test(NAME ${PACKAGE_NAME} COMMAND ${PACKAGE_NAME} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}) -------------------------------------------------------------------------------- /test/unit/pqueue/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(PACKAGE_NAME unit-pqueue) 2 | 3 | set(CDSGTEST_PQUEUE_SOURCES 4 | ../main.cpp 5 | fcpqueue_boost_stable_vector.cpp 6 | fcpqueue_deque.cpp 7 | fcpqueue_vector.cpp 8 | intrusive_mspqueue.cpp 9 | mspqueue.cpp 10 | ) 11 | 12 | include_directories( 13 | ${CMAKE_CURRENT_SOURCE_DIR} 14 | ) 15 | 16 | add_executable(${PACKAGE_NAME} ${CDSGTEST_PQUEUE_SOURCES}) 17 | target_link_libraries(${PACKAGE_NAME} ${CDS_TEST_LIBRARIES}) 18 | strip_binary(${PACKAGE_NAME}) 19 | add_test(NAME ${PACKAGE_NAME} COMMAND ${PACKAGE_NAME} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}) -------------------------------------------------------------------------------- /test/unit/set/feldman_hashset_rcu_gpb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_feldman_hashset_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_buffered<> rcu_implementation; 13 | typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, FeldmanHashSet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, FeldmanHashSet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/set/feldman_hashset_rcu_gpi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_feldman_hashset_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_instant<> rcu_implementation; 13 | typedef cds::urcu::general_instant_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, FeldmanHashSet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, FeldmanHashSet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/set/feldman_hashset_rcu_gpt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_feldman_hashset_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_threaded<> rcu_implementation; 13 | typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, FeldmanHashSet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, FeldmanHashSet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/set/michael_lazy_rcu_gpb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_michael_lazy_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_buffered<> rcu_implementation; 13 | typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, MichaelLazySet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, MichaelLazySet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/set/michael_lazy_rcu_gpi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_michael_lazy_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_instant<> rcu_implementation; 13 | typedef cds::urcu::general_instant_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, MichaelLazySet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, MichaelLazySet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/set/michael_lazy_rcu_gpt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_michael_lazy_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_threaded<> rcu_implementation; 13 | typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, MichaelLazySet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, MichaelLazySet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/set/michael_lazy_rcu_shb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED 9 | 10 | #include "test_michael_lazy_rcu.h" 11 | 12 | namespace { 13 | 14 | typedef cds::urcu::signal_buffered<> rcu_implementation; 15 | typedef cds::urcu::signal_buffered_stripped rcu_implementation_stripped; 16 | 17 | } // namespace 18 | 19 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB, MichaelLazySet, rcu_implementation ); 20 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB_stripped, MichaelLazySet, rcu_implementation_stripped ); 21 | 22 | #endif // CDS_URCU_SIGNAL_HANDLING_ENABLED 23 | -------------------------------------------------------------------------------- /test/unit/set/michael_michael_rcu_gpb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_michael_michael_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_buffered<> rcu_implementation; 13 | typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, MichaelSet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, MichaelSet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/set/michael_michael_rcu_gpi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_michael_michael_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_instant<> rcu_implementation; 13 | typedef cds::urcu::general_instant_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, MichaelSet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, MichaelSet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/set/michael_michael_rcu_gpt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_michael_michael_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_threaded<> rcu_implementation; 13 | typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, MichaelSet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, MichaelSet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/set/michael_michael_rcu_shb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED 9 | 10 | #include "test_michael_michael_rcu.h" 11 | 12 | namespace { 13 | 14 | typedef cds::urcu::signal_buffered<> rcu_implementation; 15 | typedef cds::urcu::signal_buffered_stripped rcu_implementation_stripped; 16 | 17 | } // namespace 18 | 19 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB, MichaelSet, rcu_implementation ); 20 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB_stripped, MichaelSet, rcu_implementation_stripped ); 21 | 22 | #endif // CDS_URCU_SIGNAL_HANDLING_ENABLED 23 | -------------------------------------------------------------------------------- /test/unit/set/skiplist_rcu_gpb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_skiplist_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_buffered<> rcu_implementation; 13 | typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, SkipListSet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, SkipListSet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/set/skiplist_rcu_gpi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_skiplist_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_instant<> rcu_implementation; 13 | typedef cds::urcu::general_instant_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, SkipListSet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, SkipListSet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/set/skiplist_rcu_gpt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_skiplist_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_threaded<> rcu_implementation; 13 | typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, SkipListSet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, SkipListSet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/set/skiplist_rcu_shb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED 9 | 10 | #include "test_skiplist_rcu.h" 11 | 12 | namespace { 13 | 14 | typedef cds::urcu::signal_buffered<> rcu_implementation; 15 | typedef cds::urcu::signal_buffered_stripped rcu_implementation_stripped; 16 | 17 | } // namespace 18 | 19 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB, SkipListSet, rcu_implementation ); 20 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB_stripped, SkipListSet, rcu_implementation_stripped ); 21 | 22 | #endif // CDS_URCU_SIGNAL_HANDLING_ENABLED 23 | -------------------------------------------------------------------------------- /test/unit/set/split_lazy_rcu_gpb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_split_lazy_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_buffered<> rcu_implementation; 13 | typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, SplitListLazySet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, SplitListLazySet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/set/split_lazy_rcu_gpi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_split_lazy_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_instant<> rcu_implementation; 13 | typedef cds::urcu::general_instant_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, SplitListLazySet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, SplitListLazySet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/set/split_lazy_rcu_gpt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_split_lazy_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_threaded<> rcu_implementation; 13 | typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, SplitListLazySet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, SplitListLazySet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/set/split_lazy_rcu_shb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED 9 | 10 | #include "test_split_lazy_rcu.h" 11 | 12 | namespace { 13 | 14 | typedef cds::urcu::signal_buffered<> rcu_implementation; 15 | typedef cds::urcu::signal_buffered_stripped rcu_implementation_stripped; 16 | 17 | } // namespace 18 | 19 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB, SplitListLazySet, rcu_implementation ); 20 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB_stripped, SplitListLazySet, rcu_implementation_stripped ); 21 | 22 | #endif // CDS_URCU_SIGNAL_HANDLING_ENABLED 23 | -------------------------------------------------------------------------------- /test/unit/set/split_michael_rcu_gpb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_split_michael_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_buffered<> rcu_implementation; 13 | typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, SplitListMichaelSet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, SplitListMichaelSet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/set/split_michael_rcu_gpi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_split_michael_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_instant<> rcu_implementation; 13 | typedef cds::urcu::general_instant_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, SplitListMichaelSet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, SplitListMichaelSet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/set/split_michael_rcu_gpt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_split_michael_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_threaded<> rcu_implementation; 13 | typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, SplitListMichaelSet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, SplitListMichaelSet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/stack/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(PACKAGE_NAME unit-stack) 2 | 3 | set(CDSGTEST_STACK_SOURCES 4 | ../main.cpp 5 | fcstack.cpp 6 | intrusive_fcstack.cpp 7 | intrusive_treiber_stack_dhp.cpp 8 | intrusive_treiber_stack_hp.cpp 9 | intrusive_treiber_stack_custom_hp.cpp 10 | treiber_stack_dhp.cpp 11 | treiber_stack_hp.cpp 12 | ) 13 | 14 | include_directories( 15 | ${CMAKE_CURRENT_SOURCE_DIR} 16 | ) 17 | 18 | add_executable(${PACKAGE_NAME} ${CDSGTEST_STACK_SOURCES}) 19 | target_link_libraries(${PACKAGE_NAME} ${CDS_TEST_LIBRARIES}) 20 | strip_binary(${PACKAGE_NAME}) 21 | add_test(NAME ${PACKAGE_NAME} COMMAND ${PACKAGE_NAME} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}) -------------------------------------------------------------------------------- /test/unit/striped-map/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(PACKAGE_NAME unit-striped-map) 2 | 3 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DCDSUNIT_ENABLE_BOOST_CONTAINER") 4 | 5 | set(CDSGTEST_STRIPED_MAP_SOURCES 6 | ../main.cpp 7 | cuckoo_map.cpp 8 | map_boost_flat_map.cpp 9 | map_boost_list.cpp 10 | map_boost_map.cpp 11 | map_boost_slist.cpp 12 | map_boost_unordered_map.cpp 13 | map_std_list.cpp 14 | map_std_map.cpp 15 | map_std_unordered_map.cpp 16 | ) 17 | 18 | include_directories( 19 | ${CMAKE_CURRENT_SOURCE_DIR} 20 | ) 21 | 22 | add_executable(${PACKAGE_NAME} ${CDSGTEST_STRIPED_MAP_SOURCES}) 23 | target_link_libraries(${PACKAGE_NAME} ${CDS_TEST_LIBRARIES}) 24 | strip_binary(${PACKAGE_NAME}) 25 | add_test(NAME ${PACKAGE_NAME} COMMAND ${PACKAGE_NAME} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}) -------------------------------------------------------------------------------- /test/unit/tree/bronson_avltree_map_ptr_rcu_gpb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_bronson_avltree_map_ptr.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_buffered<> rcu_implementation; 13 | typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, BronsonAVLTreeMapPtr, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, BronsonAVLTreeMapPtr, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/tree/bronson_avltree_map_ptr_rcu_gpi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_bronson_avltree_map_ptr.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_instant<> rcu_implementation; 13 | typedef cds::urcu::general_instant_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, BronsonAVLTreeMapPtr, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, BronsonAVLTreeMapPtr, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/tree/bronson_avltree_map_ptr_rcu_gpt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_bronson_avltree_map_ptr.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_threaded<> rcu_implementation; 13 | typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, BronsonAVLTreeMapPtr, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, BronsonAVLTreeMapPtr, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/tree/bronson_avltree_map_ptr_rcu_shb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED 9 | 10 | #include "test_bronson_avltree_map_ptr.h" 11 | 12 | namespace { 13 | 14 | typedef cds::urcu::signal_buffered<> rcu_implementation; 15 | typedef cds::urcu::signal_buffered_stripped rcu_implementation_stripped; 16 | 17 | } // namespace 18 | 19 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB, BronsonAVLTreeMapPtr, rcu_implementation ); 20 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB_stripped, BronsonAVLTreeMapPtr, rcu_implementation_stripped ); 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /test/unit/tree/bronson_avltree_map_rcu_gpb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_bronson_avltree_map.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_buffered<> rcu_implementation; 13 | typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, BronsonAVLTreeMap, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, BronsonAVLTreeMap, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/tree/bronson_avltree_map_rcu_gpi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_bronson_avltree_map.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_instant<> rcu_implementation; 13 | typedef cds::urcu::general_instant_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, BronsonAVLTreeMap, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, BronsonAVLTreeMap, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/tree/bronson_avltree_map_rcu_gpt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_bronson_avltree_map.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_threaded<> rcu_implementation; 13 | typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, BronsonAVLTreeMap, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, BronsonAVLTreeMap, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/tree/bronson_avltree_map_rcu_shb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED 9 | 10 | #include "test_bronson_avltree_map.h" 11 | 12 | namespace { 13 | 14 | typedef cds::urcu::signal_buffered<> rcu_implementation; 15 | typedef cds::urcu::signal_buffered_stripped rcu_implementation_stripped; 16 | 17 | } // namespace 18 | 19 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB, BronsonAVLTreeMap, rcu_implementation ); 20 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_SHB_stripped, BronsonAVLTreeMap, rcu_implementation_stripped ); 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /test/unit/tree/ellen_bintree_map_rcu_gpb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_ellen_bintree_map_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_buffered<> rcu_implementation; 13 | typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, EllenBinTreeMap, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, EllenBinTreeMap, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/tree/ellen_bintree_map_rcu_gpi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_ellen_bintree_map_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_instant<> rcu_implementation; 13 | typedef cds::urcu::general_instant_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, EllenBinTreeMap, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, EllenBinTreeMap, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/tree/ellen_bintree_map_rcu_gpt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_ellen_bintree_map_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_threaded<> rcu_implementation; 13 | typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, EllenBinTreeMap, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, EllenBinTreeMap, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/tree/ellen_bintree_set_rcu_gpb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_ellen_bintree_set_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_buffered<> rcu_implementation; 13 | typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, EllenBinTreeSet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, EllenBinTreeSet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/tree/ellen_bintree_set_rcu_gpi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_ellen_bintree_set_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_instant<> rcu_implementation; 13 | typedef cds::urcu::general_instant_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, EllenBinTreeSet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, EllenBinTreeSet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/tree/ellen_bintree_set_rcu_gpt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_ellen_bintree_set_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_threaded<> rcu_implementation; 13 | typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, EllenBinTreeSet, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, EllenBinTreeSet, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/tree/ellen_bintree_update_desc_pool.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | #include "test_ellen_bintree_update_desc_pool.h" 8 | 9 | namespace cds_test { 10 | pool_type s_Pool; 11 | lazy_pool_type s_LazyPool; 12 | } 13 | -------------------------------------------------------------------------------- /test/unit/tree/intrusive_ellenbintree_rcu_gpb.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_intrusive_ellen_bintree_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_buffered<> rcu_implementation; 13 | typedef cds::urcu::general_buffered_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB, IntrusiveEllenBinTree, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPB_stripped, IntrusiveEllenBinTree, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/tree/intrusive_ellenbintree_rcu_gpi.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_intrusive_ellen_bintree_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_instant<> rcu_implementation; 13 | typedef cds::urcu::general_instant_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI, IntrusiveEllenBinTree, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPI_stripped, IntrusiveEllenBinTree, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /test/unit/tree/intrusive_ellenbintree_rcu_gpt.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2018 Maxim Khizhinsky 2 | // 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | 8 | #include "test_intrusive_ellen_bintree_rcu.h" 9 | 10 | namespace { 11 | 12 | typedef cds::urcu::general_threaded<> rcu_implementation; 13 | typedef cds::urcu::general_threaded_stripped rcu_implementation_stripped; 14 | 15 | } // namespace 16 | 17 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT, IntrusiveEllenBinTree, rcu_implementation ); 18 | INSTANTIATE_TYPED_TEST_CASE_P( RCU_GPT_stripped, IntrusiveEllenBinTree, rcu_implementation_stripped ); 19 | -------------------------------------------------------------------------------- /tools/make_distrib.bat: -------------------------------------------------------------------------------- 1 | 2 | cd .. 3 | perl -X tools/make_distrib.pl 4 | cd tools -------------------------------------------------------------------------------- /tools/make_docs.bat: -------------------------------------------------------------------------------- 1 | set DOXYPRJ_ROOT=. 2 | cd .. 3 | del /F /Q doc\* 4 | "%DOXYGEN_PATH%\bin\doxygen" doxygen\cds.doxy > tools\doxygen.log 2>&1 5 | 6 | copy /Y doxygen\index.html doc\index.html 7 | cd tools 8 | --------------------------------------------------------------------------------