From f53c7a678571082c1921d5ba3a91a7cc7669058b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Tue, 4 Oct 2016 03:04:12 -0400 Subject: [PATCH] dht: keep track of storage usage in maintainStorage --- src/dht.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/dht.cpp b/src/dht.cpp index 1782f870..352cc878 100644 --- a/src/dht.cpp +++ b/src/dht.cpp @@ -143,7 +143,7 @@ struct Dht::Storage { return values.empty(); } - void clear(); + std::pair<ssize_t, ssize_t> clear(); size_t valueCount() const { return values.size(); @@ -2205,11 +2205,14 @@ Dht::Storage::store(const std::shared_ptr<Value>& value, time_point created, ssi } } -void +std::pair<ssize_t, ssize_t> Dht::Storage::clear() { + size_t num_values = values.size(); + size_t tot_size = total_size; values.clear(); total_size = 0; + return std::make_pair(-tot_size, -num_values); } void @@ -2793,7 +2796,9 @@ Dht::maintainStorage(InfoHash id, bool force, DoneCallback donecb) { if (not want4 and not want6) { DHT_LOG.DEBUG("Discarding storage values %s", id.toString().c_str()); - local_storage->second.clear(); + auto diff = local_storage->second.clear(); + total_store_size += diff.first; + total_values += diff.second; } return announce_per_af; -- GitLab