diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2018-10-22 13:02:48 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2018-10-22 13:02:48 +0100 |
commit | 9fb974075dd4da3f8c22422d6d7d220d46649339 (patch) | |
tree | 9dc4ecbdf311f7c5f9307513664d7b157d21d70f /src | |
parent | 52baa11e0b8574cd52a18b035e0a749bd27d0b94 (diff) | |
download | rspamd-9fb974075dd4da3f8c22422d6d7d220d46649339.tar.gz rspamd-9fb974075dd4da3f8c22422d6d7d220d46649339.zip |
[Minor] Check deps before processing of rdeps
Diffstat (limited to 'src')
-rw-r--r-- | src/libserver/symbols_cache.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/libserver/symbols_cache.c b/src/libserver/symbols_cache.c index 94ca664a8..358242e94 100644 --- a/src/libserver/symbols_cache.c +++ b/src/libserver/symbols_cache.c @@ -1703,8 +1703,7 @@ rspamd_symbols_cache_process_symbols (struct rspamd_task * task, continue; } - if (!(item->type & SYMBOL_TYPE_FINE) && - rspamd_session_events_pending (task->s) == 0) { + if (!(item->type & SYMBOL_TYPE_FINE)) { if (rspamd_symbols_cache_metric_limit (task, checkpoint)) { msg_info_task ("<%s> has already scored more than %.2f, so do " "not " @@ -2593,9 +2592,18 @@ rspamd_symbols_cache_finalize_item (struct rspamd_task *task, PTR_ARRAY_FOREACH (item->rdeps, i, rdep) { if (rdep->item) { if (!isset (checkpoint->processed_bits, rdep->item->id * 2)) { - rspamd_symbols_cache_check_symbol (task, task->cfg->cache, + if (!rspamd_symbols_cache_check_deps (task, task->cfg->cache, rdep->item, - checkpoint); + checkpoint, 0, FALSE)) { + msg_debug_cache_task ("blocked execution of %d(%s) rdep of %s " + "unless deps are resolved", + rdep->item->id, rdep->item->symbol, item->symbol); + } + else { + rspamd_symbols_cache_check_symbol (task, task->cfg->cache, + rdep->item, + checkpoint); + } } } } |