From 10c9fb3240f987b605de6fe7c3c1e66bb32d89aa Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Wed, 17 Jan 2024 20:22:10 -0800 Subject: [PATCH] common/intrusive_lru: generalize evict() slightly to allow other target values Signed-off-by: Samuel Just --- src/common/intrusive_lru.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/common/intrusive_lru.h b/src/common/intrusive_lru.h index 6ae13c8f99fc1..fb94b5fd9ead1 100644 --- a/src/common/intrusive_lru.h +++ b/src/common/intrusive_lru.h @@ -122,9 +122,9 @@ class intrusive_lru { // when the lru_set exceeds its target size, evict // only unreferenced elements from it (if any). - void evict() { + void evict(unsigned target_size) { while (!unreferenced_list.empty() && - lru_set.size() > lru_target_size) { + lru_set.size() > target_size) { auto &evict_target = unreferenced_list.front(); assert(evict_target.is_unreferenced()); unreferenced_list.pop_front(); @@ -150,7 +150,7 @@ class intrusive_lru { assert(b.is_unreferenced()); lru_set.insert(b); b.lru = this; - evict(); + evict(lru_target_size); } // an element in the lru_set has no users, @@ -159,7 +159,7 @@ class intrusive_lru { assert(b.is_referenced()); unreferenced_list.push_back(b); b.lru = nullptr; - evict(); + evict(lru_target_size); } public: @@ -226,7 +226,7 @@ public: void set_target_size(size_t target_size) { lru_target_size = target_size; - evict(); + evict(lru_target_size); } ~intrusive_lru() { -- 2.39.5