File tree Expand file tree Collapse file tree 1 file changed +21
-0
lines changed
Expand file tree Collapse file tree 1 file changed +21
-0
lines changed Original file line number Diff line number Diff line change @@ -410,6 +410,27 @@ void sched_dequeue_task(tcb_t *task)
410410 return ;
411411}
412412
413+ /* Task migration from origin to new priority ready queue */
414+ static void sched_migrate_task (tcb_t * task , int16_t priority )
415+ {
416+ if (unlikely (!task || !is_valid_priority (priority )))
417+ return ;
418+
419+ if (task -> prio == priority )
420+ return ;
421+
422+ /* Remove task node from origin ready queue */
423+ sched_dequeue_task (task );
424+
425+ /* Update new properties */
426+ task -> prio = priority ;
427+ task -> prio_level = extract_priority_level (priority );
428+
429+ /* Enqueue task node into new priority ready queue*/
430+ sched_enqueue_task (task );
431+ return ;
432+ }
433+
413434/* Handle time slice expiration for current task */
414435void sched_tick_current_task (void )
415436{
You can’t perform that action at this time.
0 commit comments