aboutsummaryrefslogtreecommitdiffstats
path: root/src/libserver/task.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@rspamd.com>2022-05-28 12:34:33 +0100
committerVsevolod Stakhov <vsevolod@rspamd.com>2022-05-28 12:34:33 +0100
commit563faab280101acdcbfe8a8f681dec74b50db85c (patch)
treebe6c82ed6e07b7d79561b9258a2d5b51080895e5 /src/libserver/task.c
parentf9ac76aa3c375dfcbd921756e2418384bd4726e6 (diff)
downloadrspamd-563faab280101acdcbfe8a8f681dec74b50db85c.tar.gz
rspamd-563faab280101acdcbfe8a8f681dec74b50db85c.zip
[Fix] Another try to fix race condition in the runtime destruction
Diffstat (limited to 'src/libserver/task.c')
-rw-r--r--src/libserver/task.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/libserver/task.c b/src/libserver/task.c
index 2b2dc727d..46aabcb62 100644
--- a/src/libserver/task.c
+++ b/src/libserver/task.c
@@ -309,8 +309,17 @@ rspamd_task_free (struct rspamd_task *task)
rspamd_message_unref (task->message);
if (task->flags & RSPAMD_TASK_FLAG_OWN_POOL) {
+ rspamd_mempool_destructors_enforce (task->task_pool);
+
+ if (task->symcache_runtime) {
+ rspamd_symcache_runtime_destroy (task);
+ }
+
rspamd_mempool_delete (task->task_pool);
}
+ else if (task->symcache_runtime) {
+ rspamd_symcache_runtime_destroy (task);
+ }
}
}