From 04bd53037a39cc749cda9964e1461ab8363457da Mon Sep 17 00:00:00 2001 From: Otto Moerbeek Date: Wed, 4 Dec 2019 17:00:25 +0100 Subject: [PATCH] get total size beforehand --- pdns/cachecleaner.hh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pdns/cachecleaner.hh b/pdns/cachecleaner.hh index a4dfe8863d..68118f35de 100644 --- a/pdns/cachecleaner.hh +++ b/pdns/cachecleaner.hh @@ -167,7 +167,11 @@ template uint64_t pruneMutexCollectionsVect } else { lookAt = cacheSize / 10; } - + + uint64_t maps_size = maps.size(); + if (maps_size == 0) + return 0; + for (auto& mc : maps) { const std::lock_guard lock(mc.mutex); auto& sidx = boost::multi_index::get(mc.d_map); @@ -182,10 +186,10 @@ template uint64_t pruneMutexCollectionsVect ++i; } - if (toTrim && erased >= toTrim / maps.size()) + if (toTrim && erased >= toTrim / maps_size) break; - if (lookedAt > lookAt / maps.size()) + if (lookedAt > lookAt / maps_size) break; } totErased += erased; -- 2.47.2