diff options
Diffstat (limited to 'src/core/taskq.c')
| -rw-r--r-- | src/core/taskq.c | 4 |
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); |
