~~NOTOC~~
===== tn_task_wakeup() =====
{{tnkernel:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}} {{tnkernel:ref:attr_call_ct_sw.png|Может привести к переключению контекста}}
Функция предназначена для пробуждения приостановленной с помощью функции [[tnkernel:ref:task:tn_task_sleep|tn_task_sleep()]] задачи. При этом задача продолжит выполнение с места возврата из функции [[tnkernel:ref:task:tn_task_sleep|tn_task_sleep()]] без ошибок.
Если функция пытается пробудить задачу, которая еще не приостановлена, счетчик запросов на пробуждение будет увеличен на 1.
**Вызов:**
TN_RETVAL tn_task_wakeup (TN_TCB *task);
**Разрешен вызов:** \\
В контексте задачи
**Параметры функции:**
; ''task'' : указатель на TCB пробуждаемой задачи
\\
**Возвращаемые значения:**
; ''TERR_WRONG_PARAM'' : некорректное значение параметра (__замечание:__ данный код возврата возможен только в случае использования сервисов с проверкой параметров)
; ''TERR_NOEXS'' : попытка пробуждения объекта, не являющегося задачей (__замечание:__ данный код возврата возможен только в случае использования сервисов с проверкой параметров)
; ''TERR_WCONTEXT'' : попытка пробуждения задачи в прерывании или в пользовательской критической секции : попытка пробуждения задачи, находящейся в состоянии //DORMANT//
; ''TERR_OVERFLOW'' : счетчик запросов на пробуждение переполнен (=1)
; ''TERR_NO_ERR'' : успешное выполнение
\\
**Пример вызова:**
extern TN_TCB tcb_Task1 TN_DATA;
/* ... */
if (need_wakeup_task_1)
tn_task_wakeup(&tcb_Task1);
/* ... */
\\
----
[[tnkernel:ref:task:intro#сервисы_управления_задачами|К списку сервисов]]