~~NOTOC~~
===== tn_task_isuspend() =====
{{tnkernel:ref:attr_call_int.png|Разрешен вызов только в прерывании}} {{tnkernel:ref:attr_call_ct_sw.png|Может привести к переключению контекста}}
Функция приостанавливает выполнение задачи, переводя ее в состояние //SUSPENDED// из прерывания. Если задача находится в состоянии //WAITING//, она переводится в состояние //WAITING_SUSPENDED//.
Функция может приостановить задачи выполняемой на момент получения запроса на прерывание, так и выполнение любой другой задачи.
**Вызов:**
TN_RETVAL tn_task_isuspend (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;
tn_sys_interrupt (_T2Interrupt)        /* прерывание от таймера */
{
    IFS0bits.T2IF = 0;                 /* сброс флага прерывания */
    tn_task_isuspend(&tcb_Task1);      /* приостановка выполнения задачи tcb_Task1 */
}
\\ 
----
[[tnkernel:ref:task:intro#сервисы_управления_задачами|К списку сервисов]]