tn_mutex_delete()

Функция предназначена для удаления мютекса. Поле id_mutex структуры mutex после выполнения сервиса устанавливается в 0. Приоритет задачи, владеющий мютексом будет восстановлен, если он был изменен вследствие протокола обхода инверсии приоритетов.

Задача владеющая мютексом никак не будет извещена о его удалении, однако, сервис освобождения мютекса вернет код ошибки TERR_DLT. Все задачи, ожидающие освобождения мютекса будут переведены в состояние RUNNABLE.

Вызов:

TN_RETVAL tn_mutex_delete(TN_MUTEX *mutex);

Разрешен вызов:

В контексте задачи

Параметры функции:

mutex
указатель на структуру удаляемого мютекса


Возвращаемые значения:

TERR_WRONG_PARAM
некорректное значение параметра (замечание: данный код возврата возможен только в случае использования сервисов с проверкой параметров)
TERR_WCONTEXT
вызов сервиса в обработчике системного прерывания или в пользовательской критической секции
TERR_NOEXS
попытка удаления несуществующего мютекса
TERR_NO_ERR
успешное выполнение


Пример вызова:

extern TN_MUTEX mutex_test;
 
tn_mutex_delete(&mutex_test);



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