From 13b37dab614b7a6f93c223f803e59edebff4bbb9 Mon Sep 17 00:00:00 2001 From: greg Date: Mon, 1 Feb 2021 08:45:37 -0500 Subject: [PATCH] Add clearSubmap API and make sets_ array protected - issue #81 --- parallel_hashmap/phmap.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/parallel_hashmap/phmap.h b/parallel_hashmap/phmap.h index b2176a2..458abc0 100644 --- a/parallel_hashmap/phmap.h +++ b/parallel_hashmap/phmap.h @@ -2747,7 +2747,18 @@ public: PHMAP_ATTRIBUTE_REINITIALIZES void clear() { for (auto& inner : sets_) + { + typename Lockable::UniqueLock m(inner); inner.set_.clear(); + } + } + + // extension - clears only soecified submap + // ---------------------------------------- + void clearSubmap(std::size_t submap_index) { + Inner& inner = sets_[submap_index]; + typename Lockable::UniqueLock m(inner); + inner.set_.clear(); } // This overload kicks in when the argument is an rvalue of insertable and @@ -3343,6 +3354,7 @@ private: return sets_[0].set_.alloc_ref(); } +protected: // protected in case users want to derive fromm this std::array sets_; };