aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2018-10-22 13:02:48 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2018-10-22 13:02:48 +0100
commit9fb974075dd4da3f8c22422d6d7d220d46649339 (patch)
tree9dc4ecbdf311f7c5f9307513664d7b157d21d70f /src
parent52baa11e0b8574cd52a18b035e0a749bd27d0b94 (diff)
downloadrspamd-9fb974075dd4da3f8c22422d6d7d220d46649339.tar.gz
rspamd-9fb974075dd4da3f8c22422d6d7d220d46649339.zip
[Minor] Check deps before processing of rdeps
Diffstat (limited to 'src')
-rw-r--r--src/libserver/symbols_cache.c16
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);
+ }
}
}
}