aboutsummaryrefslogtreecommitdiff
path: root/src/core/taskq.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/taskq.c')
-rw-r--r--src/core/taskq.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/core/taskq.c b/src/core/taskq.c
index 82a7456b..9dde6981 100644
--- a/src/core/taskq.c
+++ b/src/core/taskq.c
@@ -51,8 +51,11 @@ nni_taskq_thread(void *self)
if ((task = nni_list_first(&tq->tq_tasks)) != NULL) {
bool reap;
+ nni_mtx_lock(&task->task_mtx);
nni_list_remove(&tq->tq_tasks, task);
task->task_thr = &thr->tqt_thread;
+ nni_mtx_unlock(&task->task_mtx);
+
nni_mtx_unlock(&tq->tq_mtx);
task->task_cb(task->task_arg);