From f7476199742256fed6f867afb6db8cecdacfe547 Mon Sep 17 00:00:00 2001 From: Dan Engelbrecht Date: Tue, 26 Apr 2022 13:36:02 +0200 Subject: Batch log removal of Cid and take proper lock when modifying m_CidMap (#80) * Batch log removal of Cid and take proper lock when modifying m_CidMap * variable name casing * Don't access m_Buckets without a lock --- zenserver/cache/structuredcachestore.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'zenserver/cache/structuredcachestore.cpp') diff --git a/zenserver/cache/structuredcachestore.cpp b/zenserver/cache/structuredcachestore.cpp index 738e4c1fd..6bf513105 100644 --- a/zenserver/cache/structuredcachestore.cpp +++ b/zenserver/cache/structuredcachestore.cpp @@ -1255,10 +1255,10 @@ ZenCacheDiskLayer::Put(std::string_view InBucket, const IoHash& HashKey, const Z auto It = m_Buckets.try_emplace(BucketName, BucketName); Bucket = &It.first->second; - std::filesystem::path bucketPath = m_RootDir; - bucketPath /= BucketName; + std::filesystem::path BucketPath = m_RootDir; + BucketPath /= BucketName; - Bucket->OpenOrCreate(bucketPath); + Bucket->OpenOrCreate(BucketPath); } } @@ -1363,11 +1363,12 @@ void ZenCacheDiskLayer::Flush() { std::vector Buckets; - Buckets.reserve(m_Buckets.size()); + { RwLock::SharedLockScope _(m_Lock); + Buckets.reserve(m_Buckets.size()); for (auto& Kv : m_Buckets) { Buckets.push_back(&Kv.second); -- cgit v1.2.3