Docfix
authorkhizmax <libcds.dev@gmail.com>
Thu, 18 Feb 2016 19:41:20 +0000 (22:41 +0300)
committerkhizmax <libcds.dev@gmail.com>
Thu, 18 Feb 2016 19:41:20 +0000 (22:41 +0300)
cds/container/impl/michael_list.h
cds/container/lazy_kvlist_rcu.h
cds/container/michael_kvlist_rcu.h
cds/intrusive/michael_list_rcu.h

index 8284aefca7122eb16c29046ec535eecbab4f7542..287ee4b1cdf821ad1ae9fc1ccdb726c0d61f3e0f 100644 (file)
@@ -259,6 +259,8 @@ namespace cds { namespace container {
         //@endcond
 
     public:
+    ///@name Forward iterators (only for debugging purpose)
+    //@{
         /// Forward iterator
         /**
             The forward iterator for Michael's list has some features:
@@ -280,8 +282,6 @@ namespace cds { namespace container {
         */
         typedef iterator_type<true>     const_iterator;
 
-    ///@name Forward iterators (only for debugging purpose)
-    //@{
         /// Returns a forward iterator addressing the first element in a list
         /**
             For empty list \code begin() == end() \endcode
index 828772b2680a5e598cdb6c733b3cb0b1301c24a2..8fd92684fb7b03baa63373ee0bcc991f96fa4758 100644 (file)
@@ -287,7 +287,13 @@ namespace cds { namespace container {
         //@endcond
 
     public:
+    ///@name Forward iterators
+    //@{
         /// Forward iterator
+        /**
+            You may safely use iterators in multi-threaded environment only under external RCU lock.
+            Otherwise, a program crash is possible if another thread deletes the item the iterator points to.
+        */
         typedef iterator_type<false>    iterator;
 
         /// Const forward iterator
@@ -318,32 +324,33 @@ namespace cds { namespace container {
         }
 
         /// Returns a forward const iterator addressing the first element in a list
-        //@{
         const_iterator begin() const
         {
             const_iterator it( head() );
             ++it;   // skip dummy head
             return it;
         }
+
+        /// Returns a forward const iterator addressing the first element in a list
         const_iterator cbegin() const
         {
             const_iterator it( head() );
             ++it;   // skip dummy head
             return it;
         }
-        //@}
 
         /// Returns an const iterator that addresses the location succeeding the last element in a list
-        //@{
         const_iterator end() const
         {
             return const_iterator( tail());
         }
+
+        /// Returns an const iterator that addresses the location succeeding the last element in a list
         const_iterator cend() const
         {
             return const_iterator( tail());
         }
-        //@}
+    //@}
 
     public:
         /// Default constructor
index c4b48ba9fa9e45e0b0447714cbe426c055badee8..6b80b9e1b212575e4a640600fa128c93dc041869 100644 (file)
@@ -302,7 +302,13 @@ namespace cds { namespace container {
         //@endcond
 
     public:
+    ///@name Forward iterators
+    //@{
         /// Forward iterator
+        /**
+            You may safely use iterators in multi-threaded environment only under external RCU lock.
+            Otherwise, a program crash is possible if another thread deletes the item the iterator points to.
+        */
         typedef iterator_type<false>    iterator;
 
         /// Const forward iterator
@@ -331,28 +337,27 @@ namespace cds { namespace container {
         }
 
         /// Returns a forward const iterator addressing the first element in a list
-        //@{
         const_iterator begin() const
         {
             return const_iterator( head() );
         }
+        /// Returns a forward const iterator addressing the first element in a list
         const_iterator cbegin() const
         {
             return const_iterator( head() );
         }
-        //@}
 
         /// Returns an const iterator that addresses the location succeeding the last element in a list
-        //@{
         const_iterator end() const
         {
             return const_iterator();
         }
+        /// Returns an const iterator that addresses the location succeeding the last element in a list
         const_iterator cend() const
         {
             return const_iterator();
         }
-        //@}
+    //@}
 
     public:
         /// Default constructor
index cea4f18e2cd4ea6d05ecd7d61856b381ae1c8c6d..ed21242bcf5042c10ffb616635169b642e5b346d 100644 (file)
@@ -371,8 +371,15 @@ namespace cds { namespace intrusive {
         //@endcond
 
     public:
+    ///@name Forward iterators (only for debugging purpose)
+    //@{
         /// Forward iterator
+        /**
+            You may safely use iterators in multi-threaded environment only under RCU lock.
+            Otherwise, a crash is possible if another thread deletes the item the iterator points to.
+        */
         typedef iterator_type<false>    iterator;
+
         /// Const forward iterator
         typedef iterator_type<true>     const_iterator;
 
@@ -419,6 +426,7 @@ namespace cds { namespace intrusive {
         {
             return const_iterator();
         }
+    //@}
 
     public:
         /// Default constructor initializes empty list