aboutsummaryrefslogtreecommitdiff
path: root/src/core/taskq.c
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2018-05-15 12:35:19 -0700
committerGarrett D'Amore <garrett@damore.org>2018-05-15 12:35:19 -0700
commit959f4588a164f0a524c4a654b06fcade01f5e6d5 (patch)
treee55ef823b6095c5215b21d2facc3a71e7aaf2f99 /src/core/taskq.c
parent81808ce3d38cc7ce0131367e2187f0beb2cd1b43 (diff)
downloadnng-959f4588a164f0a524c4a654b06fcade01f5e6d5.tar.gz
nng-959f4588a164f0a524c4a654b06fcade01f5e6d5.tar.bz2
nng-959f4588a164f0a524c4a654b06fcade01f5e6d5.zip
fixes #433 tasks can leak
While here I also improved the taskq.h comments (and removed a stale prototype for nni_task_cancel), and addressed leaks in the reqstress and multistress test programs.
Diffstat (limited to 'src/core/taskq.c')
-rw-r--r--src/core/taskq.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/core/taskq.c b/src/core/taskq.c
index a87e4729..d945e713 100644
--- a/src/core/taskq.c
+++ b/src/core/taskq.c
@@ -285,7 +285,7 @@ nni_task_fini(nni_task *task)
{
NNI_ASSERT(!nni_list_node_active(&task->task_node));
nni_mtx_lock(&task->task_mtx);
- if (task->task_run || task->task_exec) {
+ if ((task->task_run || task->task_exec) && (!task->task_done)) {
// destroy later.
task->task_fini = true;
nni_mtx_unlock(&task->task_mtx);