tn_task_change_priority()

Разрешен вызов только в контексте задачи Может привести к переключению контекста

Функция изменяет натуральный (заданный при создании) приоритет задачи.

Функция может изменять приоритет как текущей, так и любой другой задачи, которая находится в состоянии отличном от DORMANT.

Если после изменения приоритета текущей задачи она становится менее приоритетной чем одна из задач, готовая к выполнению, то запускается более приоритетная задача.

Если после изменения приоритета задачи готовой к выполнению, она становится наиболее приоритетной, то она запускается - становится активной.

Изменение приоритета задачи, находящейся в состоянии останова или ожидания не меняет состояния задачи.

Вызов:

TN_RETVAL tn_task_change_priority (TN_TCB *task, TN_UWORD new_priority);

Разрешен вызов:

В контексте задачи

Параметры функции:

task
указатель на TCB задачи, изменяющей приоритет. Задача может изменить свой приоритет.
new_priority
новый приоритет задачи от 1 до 14 для 16-битных контроллеров и от 1 до 30 - для 32-битных контроллеров. Если значение параметра равно 0, то задача восстанавливает базовый приоритет, назначенный при создании.

Возвращаемые значения:

TERR_WRONG_PARAM
некорректное значение параметра (замечание: данный код возврата возможен только в случае использования сервисов с проверкой параметров)
TERR_NOEXS
попытка изменения приоритета объекта, не являющегося задачей
TERR_WCONTEXT
попытка изменения приоритета задачи в прерывании или в пользовательской критической секции
попытка изменения приоритета задачи, находящейся в состоянии DORMANT
TERR_NO_ERR
успешное выполнение


Пример вызова:

tn_task_change_priority(&myTask, 10);



К списку сервисов