Available Languages?:

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/tn_mutex_unlock.txt · Последние изменения: 19.06.2008 18:39 От admin
 
Creative Commons License Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki