Browse Source

[Fix] Do not resort cache on each check

tags/1.5.2
Vsevolod Stakhov 7 years ago
parent
commit
46f91e3e37
1 changed files with 5 additions and 2 deletions
  1. 5
    2
      src/libserver/symbols_cache.c

+ 5
- 2
src/libserver/symbols_cache.c View File

@@ -357,8 +357,7 @@ rspamd_symbols_cache_resort (struct symbols_cache *cache)
it = g_ptr_array_index (cache->items_by_id, i);
total_hits += it->st->total_hits;

if (!(it->type & (SYMBOL_TYPE_PREFILTER|SYMBOL_TYPE_POSTFILTER
|SYMBOL_TYPE_COMPOSITE|SYMBOL_TYPE_CLASSIFIER))) {
if (!(it->type & (SYMBOL_TYPE_PREFILTER|SYMBOL_TYPE_POSTFILTER|SYMBOL_TYPE_COMPOSITE))) {
g_ptr_array_add (ord->d, it);
}
}
@@ -1656,6 +1655,10 @@ rspamd_symbols_cache_process_symbols (struct rspamd_task * task,
for (i = 0; i < (gint)checkpoint->version; i ++) {
item = g_ptr_array_index (checkpoint->order->d, i);

if (item->type & SYMBOL_TYPE_CLASSIFIER) {
continue;
}

if (!(item->type & SYMBOL_TYPE_FINE) &&
rspamd_session_events_pending (task->s) == 0) {
if (rspamd_symbols_cache_metric_limit (task, checkpoint)) {

Loading…
Cancel
Save