tn_task_delete()

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

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

Функция сбрасывает поле id_task TCB задачи, и удаляет задачу из списка доступных в системе. Освободившуюся память можно использовать для создания другой задачи. Процесс удаления необратимый - для запуска удаленной задачи нужно создать ее заново функцией tn_task_create.

Вызов:

TN_RETVAL tn_task_delete(TN_TCB *task);

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

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

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

task
указатель на TCB удаляемой задачи


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

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


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

extern TN_TCB tcb_Task1  TN_DATA;
 
/* ... */
if (need_delete_task_1)
    tn_task_delete(&tcb_Task1);
/* ... */



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