Функция выводит задачу из состояния ожидания события вне зависимости от причины ожидания.
Если задача находится в состоянии WAITING, она переводится в состояние READY. Если задача находится в состоянии WAITING_SUSPEND, она переводится в состояние SUSPEND.
Если задача находилась в состоянии WAITING по причине вызова функции tn_task_sleep()
, вызов функции tn_task_release_wait()
с указателем на эту задачу кроме всего прочего сбрасывает счетчик попыток пробуждения задачи.
Функция не может использоваться для активации задачи, которая находится в состоянии SUSPEND. Задача не может вызывать функцию tn_task_release_wait()
с указателем на саму себя.
Вызов:
TN_RETVAL tn_task_release_wait (TN_TCB *task);
Разрешен вызов:
В контексте задачи
Параметры функции:
task
Возвращаемые значения:
TERR_WRONG_PARAM
TERR_NOEXS
TERR_WCONTEXT
TERR_NO_ERR
Пример вызова:
extern TN_TCB tcb_Task1 TN_DATA; /* ... */ if (need_forse_task_1) tn_task_release_wait(&tcb_Task1); /* ... */