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);



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