~~NOTOC~~
===== tn_mutex_unlock() =====
Функция предназначена для освобождения мютекса. Если есть задачи, ожидающие мютекс, то задача, стоящая первая в очереди, переводится в состояние готовой к выполнению, а ее приоритет может измениться согласно протоколу обхода инверсии приоритетов.
Если задача, вызвавшая сервис, пытается разблокировать свободный мютекс, сервис возвращает код ошибки ''TERR_ILUSE''.
Текущая задача после освобождения мютекса может изменить приоритет согласно протоколу обхода инверсии приоритетов.
**Вызов:**
TN_RETVAL tn_mutex_unlock(TN_MUTEX *mutex);
**Разрешен вызов:** \\
В контексте задачи
**Параметры функции:**
; ''mutex'' : указатель на структуру освобождаемого мютекса
\\
**Возвращаемые значения:**
; ''TERR_WRONG_PARAM'' : некорректное значение параметра (__замечание:__ данный код возврата возможен только в случае использования сервисов с проверкой параметров)
; ''TERR_NOEXS'' : попытка освобождения несуществующего мютекса
; ''TERR_WCONTEXT'' : попытка освобождения мютекса из обработчика прерывания или пользовательской критической секции
; ''TERR_ILUSE'' : мютекс уже освобожден
; ''TERR_NO_ERR'' : успешное выполнение
\\
**Пример вызова:**
TN_MUTEX mutex_test;
tn_mutex_unlock(&mutex_test);
\\
----
[[tnkernel:ref:mutex:intro#Сервисы управления мютексами|К списку сервисов]]