diff options
author | Vsevolod Stakhov <vsevolod@rspamd.com> | 2022-05-28 12:34:33 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@rspamd.com> | 2022-05-28 12:34:33 +0100 |
commit | 563faab280101acdcbfe8a8f681dec74b50db85c (patch) | |
tree | be6c82ed6e07b7d79561b9258a2d5b51080895e5 /src/libserver/task.c | |
parent | f9ac76aa3c375dfcbd921756e2418384bd4726e6 (diff) | |
download | rspamd-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.c | 9 |
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); + } } } |