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.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/core/taskq.c b/src/core/taskq.c
index 53252a8e..6b089767 100644
--- a/src/core/taskq.c
+++ b/src/core/taskq.c
@@ -150,13 +150,13 @@ nni_task_exec(nni_task *task)
} else {
task->task_busy++;
}
- nni_mtx_unlock(&task->task_mtx);
if (task->task_cb != NULL) {
+ nni_mtx_unlock(&task->task_mtx);
task->task_cb(task->task_arg);
+ nni_mtx_lock(&task->task_mtx);
}
- nni_mtx_lock(&task->task_mtx);
task->task_busy--;
if (task->task_busy == 0) {
nni_cv_wake(&task->task_cv);