diff options
author | Vsevolod Stakhov <vsevolod@rspamd.com> | 2022-09-10 14:57:18 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@rspamd.com> | 2022-09-10 14:57:18 +0100 |
commit | 58ce8ea685a757d783ae8a65c2958a48e81f85eb (patch) | |
tree | ce2b01d206993e3b4e293c66bba6fe2540430444 /src/libserver/symcache | |
parent | 05fd471df54b690e74125cf7ba2ff345f3be8bbf (diff) | |
download | rspamd-58ce8ea685a757d783ae8a65c2958a48e81f85eb.tar.gz rspamd-58ce8ea685a757d783ae8a65c2958a48e81f85eb.zip |
[Minor] Minor debugging improvements
Diffstat (limited to 'src/libserver/symcache')
-rw-r--r-- | src/libserver/symcache/symcache_impl.cxx | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/src/libserver/symcache/symcache_impl.cxx b/src/libserver/symcache/symcache_impl.cxx index 451222f2f..7b1127a7a 100644 --- a/src/libserver/symcache/symcache_impl.cxx +++ b/src/libserver/symcache/symcache_impl.cxx @@ -1221,13 +1221,14 @@ auto symcache::get_max_timeout(std::vector<std::pair<double, const cache_item *> const cache_item *max_elt = nullptr; for (const auto &it : vec) { if (it->priority != saved_priority && max_elt != nullptr && max_timeout > 0) { - accumulated_timeout += max_timeout; - added_timeout += max_timeout; - msg_debug_cache_lambda("added %.2f to the timeout (%.2f) as the priority has changed (%d -> %d);" - "symbol: %s", - max_timeout, accumulated_timeout, saved_priority, it->priority, - it->symbol.c_str()); if (!seen_items.contains(max_elt)) { + accumulated_timeout += max_timeout; + added_timeout += max_timeout; + + msg_debug_cache_lambda("added %.2f to the timeout (%.2f) as the priority has changed (%d -> %d); " + "symbol: %s", + max_timeout, accumulated_timeout, saved_priority, it->priority, + max_elt->symbol.c_str()); elts.emplace_back(max_timeout, max_elt); seen_items.insert(max_elt); } @@ -1245,9 +1246,14 @@ auto symcache::get_max_timeout(std::vector<std::pair<double, const cache_item *> } if (max_elt != nullptr && max_timeout > 0) { - accumulated_timeout += max_timeout; - added_timeout += max_timeout; if (!seen_items.contains(max_elt)) { + accumulated_timeout += max_timeout; + added_timeout += max_timeout; + + msg_debug_cache_lambda("added %.2f to the timeout (%.2f) end of processing; " + "symbol: %s", + max_timeout, accumulated_timeout, + max_elt->symbol.c_str()); elts.emplace_back(max_timeout, max_elt); seen_items.insert(max_elt); } @@ -1257,8 +1263,6 @@ auto symcache::get_max_timeout(std::vector<std::pair<double, const cache_item *> }; auto prefilters_timeout = pre_postfilter_iter(this->prefilters); - auto postfilters_timeout = pre_postfilter_iter(this->postfilters); - auto idempotent_timeout = pre_postfilter_iter(this->idempotent); /* For normal filters, we check the maximum chain of the dependencies * This function might have O(N^2) complexity if all symbols are in a single @@ -1278,6 +1282,10 @@ auto symcache::get_max_timeout(std::vector<std::pair<double, const cache_item *> } accumulated_timeout += max_filters_timeout; + + auto postfilters_timeout = pre_postfilter_iter(this->postfilters); + auto idempotent_timeout = pre_postfilter_iter(this->idempotent); + /* Sort in decreasing order by timeout */ std::stable_sort(std::begin(elts), std::end(elts), [](const auto &p1, const auto &p2) { |