diff options
| author | Dan Engelbrecht <[email protected]> | 2023-10-06 13:51:14 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-10-06 13:51:14 +0200 |
| commit | eda7a9151ca734f4689a3b5d054f597f633c0369 (patch) | |
| tree | 3a87180b6a33c7ce1f7beb17ada6ff9786a6029a /src/zenserver/cache/cachememorylayer.cpp | |
| parent | fix gc infinite loop (#453) (diff) | |
| download | zen-eda7a9151ca734f4689a3b5d054f597f633c0369.tar.xz zen-eda7a9151ca734f4689a3b5d054f597f633c0369.zip | |
fix memory usage in memlayer (#454)
* Bugfix: Remove double counting of memory usage in memcachelayer
Diffstat (limited to 'src/zenserver/cache/cachememorylayer.cpp')
| -rw-r--r-- | src/zenserver/cache/cachememorylayer.cpp | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/src/zenserver/cache/cachememorylayer.cpp b/src/zenserver/cache/cachememorylayer.cpp index cae3b457e..1651ad05a 100644 --- a/src/zenserver/cache/cachememorylayer.cpp +++ b/src/zenserver/cache/cachememorylayer.cpp @@ -96,15 +96,7 @@ ZenCacheMemoryLayer::Put(std::string_view InBucket, const IoHash& HashKey, const Trim(); // Note that since the underlying IoBuffer is retained, the content type is also - int64_t SizeDiff = Bucket->Put(HashKey, Value); - if (SizeDiff > 0) - { - m_TotalSize.fetch_add(gsl::narrow<uint64_t>(SizeDiff)); - } - else if (SizeDiff < 0) - { - m_TotalSize.fetch_sub(gsl::narrow<uint64_t>(-SizeDiff)); - } + Bucket->Put(HashKey, Value); } bool @@ -384,7 +376,7 @@ ZenCacheMemoryLayer::CacheBucket::Get(const IoHash& HashKey, ZenCacheValue& OutV return false; } -int64_t +void ZenCacheMemoryLayer::CacheBucket::Put(const IoHash& HashKey, const ZenCacheValue& Value) { ZEN_TRACE_CPU("Z$::Mem::Bucket::Put"); @@ -412,7 +404,7 @@ ZenCacheMemoryLayer::CacheBucket::Put(const IoHash& HashKey, const ZenCacheValue else if (m_CacheMap.size() == std::numeric_limits<uint32_t>::max()) { // No more space in our memory cache! - return 0; + return; } else { @@ -430,14 +422,11 @@ ZenCacheMemoryLayer::CacheBucket::Put(const IoHash& HashKey, const ZenCacheValue if (PayloadSize > OldPayloadSize) { m_TotalSize.fetch_add(PayloadSize - OldPayloadSize); - return gsl::narrow<int64_t>(PayloadSize - OldPayloadSize); } else if (PayloadSize < OldPayloadSize) { m_TotalSize.fetch_sub(OldPayloadSize - PayloadSize); - return -gsl::narrow<int64_t>(OldPayloadSize - PayloadSize); } - return 0; } void |