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.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/core/taskq.c b/src/core/taskq.c
index e63e33c7..fbd93ebe 100644
--- a/src/core/taskq.c
+++ b/src/core/taskq.c
@@ -184,6 +184,20 @@ nni_task_prep(nni_task *task)
}
void
+nni_task_abort(nni_task *task)
+{
+ // This is called when unscheduling the task.
+ nni_mtx_lock(&task->task_mtx);
+ if (task->task_prep) {
+ task->task_prep = false;
+ task->task_busy--;
+ if (task->task_busy == 0) {
+ nni_cv_wake(&task->task_cv);
+ }
+ }
+ nni_mtx_unlock(&task->task_mtx);
+}
+void
nni_task_wait(nni_task *task)
{
nni_mtx_lock(&task->task_mtx);