From 87ca48743e139e11be544799cc58f4064453c5c0 Mon Sep 17 00:00:00 2001 From: khizmax Date: Wed, 8 Jul 2015 21:21:23 +0300 Subject: [PATCH] Fixed doxygen 1.8.10 incompabilities --- cds/container/lazy_kvlist_nogc.h | 4 ++-- cds/container/lazy_list_nogc.h | 2 +- cds/container/michael_map_nogc.h | 11 +++++++++-- cds/container/michael_map_rcu.h | 9 ++++++++- cds/container/michael_set_nogc.h | 8 +++++++- cds/container/michael_set_rcu.h | 8 +++++++- cds/container/segmented_queue.h | 6 +++++- cds/intrusive/michael_set_nogc.h | 7 ++++++- 8 files changed, 45 insertions(+), 10 deletions(-) diff --git a/cds/container/lazy_kvlist_nogc.h b/cds/container/lazy_kvlist_nogc.h index bcb5f599..77d38897 100644 --- a/cds/container/lazy_kvlist_nogc.h +++ b/cds/container/lazy_kvlist_nogc.h @@ -15,9 +15,9 @@ namespace cds { namespace container { @anchor cds_nonintrusive_LazyKVList_nogc This specialization is append-only list when no item - reclamation may be performed. The class does not support deleting of list item. + reclamation may be performed. The class does not support deleting of list's item. - @copydetails cds_nonintrusive_LazyList_gc + See @ref cds_nonintrusive_LazyList_gc "cds::container::LazyList" */ template < typename Key, diff --git a/cds/container/lazy_list_nogc.h b/cds/container/lazy_list_nogc.h index d32c84a7..979d47ce 100644 --- a/cds/container/lazy_list_nogc.h +++ b/cds/container/lazy_list_nogc.h @@ -22,7 +22,7 @@ namespace cds { namespace container { relationship (\p Traits::equal_to), but for the ordered list \p less or \p compare relations should be specified in \p Traits. - @copydetails cds_nonintrusive_LazyList_gc + See @ref cds_nonintrusive_LazyList_gc "cds::container::LazyList" */ template < typename T, diff --git a/cds/container/michael_map_nogc.h b/cds/container/michael_map_nogc.h index a85dd62d..f30af09e 100644 --- a/cds/container/michael_map_nogc.h +++ b/cds/container/michael_map_nogc.h @@ -16,7 +16,7 @@ namespace cds { namespace container { This specialization is so-called append-only when no item reclamation may be performed. The class does not support deleting of map item. - See \ref cds_nonintrusive_MichaelHashMap_hp "MichaelHashMap" for description of template parameters. + See @ref cds_nonintrusive_MichaelHashMap_hp "MichaelHashMap" for description of template parameters. */ template < class OrderedList, @@ -250,7 +250,14 @@ namespace cds { namespace container { public: /// Initialize the map - /** @copydetails cds_nonintrusive_MichaelHashMap_hp_ctor + /** + The Michael's hash map is non-expandable container. You should point the average count of items \p nMaxItemCount + when you create an object. + \p nLoadFactor parameter defines average count of items per bucket and it should be small number between 1 and 10. + Remember, since the bucket implementation is an ordered list, searching in the bucket is linear [O(nLoadFactor)]. + Note, that many popular STL hash map implementation uses load factor 1. + + The ctor defines hash table size as rounding nMacItemCount / nLoadFactor up to nearest power of two. */ MichaelHashMap( size_t nMaxItemCount, ///< estimation of max item count in the hash set diff --git a/cds/container/michael_map_rcu.h b/cds/container/michael_map_rcu.h index 8bbb2208..edd82bdc 100644 --- a/cds/container/michael_map_rcu.h +++ b/cds/container/michael_map_rcu.h @@ -286,7 +286,14 @@ namespace cds { namespace container { public: /// Initializes the map - /** @copydetails cds_nonintrusive_MichaelHashMap_hp_ctor + /** + The Michael's hash map is non-expandable container. You should point the average count of items \p nMaxItemCount + when you create an object. + \p nLoadFactor parameter defines average count of items per bucket and it should be small number between 1 and 10. + Remember, since the bucket implementation is an ordered list, searching in the bucket is linear [O(nLoadFactor)]. + Note, that many popular STL hash map implementation uses load factor 1. + + The ctor defines hash table size as rounding nMacItemCount / nLoadFactor up to nearest power of two. */ MichaelHashMap( size_t nMaxItemCount, ///< estimation of max item count in the hash map diff --git a/cds/container/michael_set_nogc.h b/cds/container/michael_set_nogc.h index b1cc9332..ce0dc31c 100644 --- a/cds/container/michael_set_nogc.h +++ b/cds/container/michael_set_nogc.h @@ -155,7 +155,13 @@ namespace cds { namespace container { public: /// Initialize hash set - /** @copydetails cds_nonintrusive_MichaelHashSet_hp_ctor + /** + The Michael's hash set is non-expandable container. You should point the average count of items \p nMaxItemCount + when you create an object. + \p nLoadFactor parameter defines average count of items per bucket and it should be small number between 1 and 10. + Remember, since the bucket implementation is an ordered list, searching in the bucket is linear [O(nLoadFactor)]. + + The ctor defines hash table size as rounding nMaxItemCount / nLoadFactor up to nearest power of two. */ MichaelHashSet( size_t nMaxItemCount, ///< estimation of max item count in the hash set diff --git a/cds/container/michael_set_rcu.h b/cds/container/michael_set_rcu.h index 501d4393..868ae890 100644 --- a/cds/container/michael_set_rcu.h +++ b/cds/container/michael_set_rcu.h @@ -238,7 +238,13 @@ namespace cds { namespace container { public: /// Initialize hash set - /** @copydetails cds_nonintrusive_MichaelHashSet_hp_ctor + /** + The Michael's hash set is non-expandable container. You should point the average count of items \p nMaxItemCount + when you create an object. + \p nLoadFactor parameter defines average count of items per bucket and it should be small number between 1 and 10. + Remember, since the bucket implementation is an ordered list, searching in the bucket is linear [O(nLoadFactor)]. + + The ctor defines hash table size as rounding nMaxItemCount / nLoadFactor up to nearest power of two. */ MichaelHashSet( size_t nMaxItemCount, ///< estimation of max item count in the hash set diff --git a/cds/container/segmented_queue.h b/cds/container/segmented_queue.h index ce75b2ef..48c26d66 100644 --- a/cds/container/segmented_queue.h +++ b/cds/container/segmented_queue.h @@ -47,7 +47,11 @@ namespace cds { namespace container { enum { alignment = opt::cache_line_alignment }; /// Padding of segment data, default is no special padding - /** @copydetails cds::intrusive::segmented_queue::traits::padding + /** + The segment is just an array of atomic data pointers, + so, the high load leads to false sharing and performance degradation. + A padding of segment data can eliminate false sharing issue. + On the other hand, the padding leads to increase segment size. */ enum { padding = cds::intrusive::segmented_queue::traits::padding }; diff --git a/cds/intrusive/michael_set_nogc.h b/cds/intrusive/michael_set_nogc.h index f64ec3f6..dd08d821 100644 --- a/cds/intrusive/michael_set_nogc.h +++ b/cds/intrusive/michael_set_nogc.h @@ -138,7 +138,12 @@ namespace cds { namespace intrusive { public: /// Initializes hash set - /** @copydetails cds_intrusive_MichaelHashSet_hp_ctor + /** + The Michael's hash set is an unbounded container, but its hash table is non-expandable. + At construction time you should pass estimated maximum item count and a load factor. + The load factor is average size of one bucket - a small number between 1 and 10. + The bucket is an ordered single-linked list, searching in the bucket has linear complexity O(nLoadFactor). + The constructor defines hash table size as rounding nMaxItemCount / nLoadFactor up to nearest power of two. */ MichaelHashSet( size_t nMaxItemCount, ///< estimation of max item count in the hash set -- 2.34.1