tn_task_suspend()

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

Функция приостанавливает выполнение задачи, переводя ее в состояние SUSPENDED. Если задача находится в состоянии WAITING, она переводится в состояние WAITING_SUSPENDED.

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

Вызов:

TN_RETVAL tn_task_suspend (TN_TCB *task);

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

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

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

task
указатель на TCB приостанавливаемой задачи


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

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


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

extern TN_TCB tcb_Task1  TN_DATA;
 
/* ... */
if (need_suspend_task_1)
    tn_task_suspend(&tcb_Task1);
/* ... */



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