Clarify the logical view of iterators

This commit is contained in:
2024-05-06 12:40:31 -07:00
parent 393168ff53
commit 745f0a14a3

View File

@@ -86,10 +86,12 @@ struct VersionedMap {
/** The version of the most recent call to `setOldestVersion`. */ /** The version of the most recent call to `setOldestVersion`. */
int64_t getOldestVersion() const; int64_t getOldestVersion() const;
/** Fixed to a specific version. It's thread-safe to operate on an iterator /** Iterates through a canonicalized view of all the mutations from
* concurrently with any method of `VersionedMap`, as long as it's not * `oldestVersion` to the iterator's version. There may be mutations from
* invalidated by `setOldestVersion`. @warning must not outlive its * versions < `oldestVersion`, but they won't affect the result. It's
* `VersionedMap`. */ * thread-safe to operate on an iterator concurrently with any method of
* `VersionedMap`, as long as it's not invalidated by `setOldestVersion`.
* @warning must not outlive its `VersionedMap`. */
struct Iterator { struct Iterator {
Iterator() = default; Iterator() = default;