Skip to content

Commit 3343901

Browse files
committed
Add dequeuing ready queue path in mo_task_delay()
Previously, mo_task_delay() only changed task state to TASK_BLOCKED and updated delayed ticks. However, it
1 parent 1c68d20 commit 3343901

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

kernel/task.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -868,11 +868,13 @@ void mo_task_delay(uint16_t ticks)
868868

869869
tcb_t *self = kcb->task_current->data;
870870

871-
/* Set delay and blocked state - scheduler will skip blocked tasks */
871+
/* Set delay and blocked state, dequeue from ready queue */
872+
list_node_t *rq_node = sched_dequeue_task(self);
872873
self->delay = ticks;
873874
self->state = TASK_BLOCKED;
874875
NOSCHED_LEAVE();
875876

877+
free(rq_node);
876878
mo_task_yield();
877879
}
878880

0 commit comments

Comments
 (0)