~~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#Сервисы управления мютексами|К списку сервисов]]