From: Otto Moerbeek Date: Wed, 4 Dec 2019 16:00:25 +0000 (+0100) Subject: get total size beforehand X-Git-Tag: dnsdist-1.5.0-alpha1~21^2^2~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=04bd53037a39cc749cda9964e1461ab8363457da;p=thirdparty%2Fpdns.git get total size beforehand --- 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;