aboutsummaryrefslogtreecommitdiffstats
path: root/include/jau/cow_darray.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/jau/cow_darray.hpp')
-rw-r--r--include/jau/cow_darray.hpp21
1 files changed, 9 insertions, 12 deletions
diff --git a/include/jau/cow_darray.hpp b/include/jau/cow_darray.hpp
index 4245113..6103420 100644
--- a/include/jau/cow_darray.hpp
+++ b/include/jau/cow_darray.hpp
@@ -68,14 +68,16 @@ namespace jau {
* <p>
* Immutable storage const_iterators are supported via jau::cow_ro_iterator,
* which are constructed <i>lock-free</i>.<br>
- * jau::cow_ro_iterator hold a snapshot retrieved via jau::cow_darray::snapshot()
+ * jau::cow_ro_iterator holds a snapshot retrieved via jau::cow_darray::snapshot()
* until its destruction.
* </p>
* <p>
* Mutable storage iterators are supported via jau::cow_rw_iterator,
- * which are constructed holding the write-lock.<br>
- * jau::cow_rw_iterator hold a new store copy via jau::cow_darray::copy_store(),
- * which replaces the current store via jau::cow_darray::set_store() at destruction.
+ * which holds a copy of this CoW storage and locks its write mutex until
+ * jau::cow_rw_iterator::write_back() or its destruction.<br>
+ * After completing all mutable operations but before this iterator's destruction,
+ * the user might want to write back this iterators' storage to this CoW
+ * using jau::cow_rw_iterator::write_back().
* </p>
* <p>
* Both, jau::cow_ro_iterator and jau::cow_rw_iterator are harmonized
@@ -112,17 +114,12 @@ namespace jau {
* - Sequentially Consistent (SC) ordering or SC-DRF (data race free) <https://en.cppreference.com/w/cpp/atomic/memory_order#Sequentially-consistent_ordering>
* - std::memory_order <https://en.cppreference.com/w/cpp/atomic/memory_order>
* </pre>
- * @see jau::cow_darray::cbegin()
+ *
+ * @see jau::darray
* @see jau::cow_ro_iterator
- * @see jau::cow_ro_iterator::size()
- * @see jau::cow_ro_iterator::begin()
- * @see jau::cow_ro_iterator::end()
* @see jau::for_each_fidelity
- * @see jau::cow_darray::begin()
* @see jau::cow_rw_iterator
- * @see jau::cow_rw_iterator::size()
- * @see jau::cow_rw_iterator::begin()
- * @see jau::cow_rw_iterator::end()
+ * @see jau::cow_rw_iterator::write_back()
*/
template <typename Value_type, typename Alloc_type = jau::callocator<Value_type>, typename Size_type = jau::nsize_t,
bool use_memmove = std::is_trivially_copyable_v<Value_type>,