Функция предназначена для создания семафора. Поле id_sem
структуры sem
должно быть равно нулю до момента создания семафора. Таким образом уже созданные семафоры защищаются от повторного создания.
Память для управляющей структуры sem
должна быть выделена до момента создания семафора. Память может быть выделена на этапе компиляции (объявление глобальной переменной типа TN_SEM
), либо динамически, если пользовательское приложение использует менеджер памяти.
Вызов:
TN_RETVAL tn_sem_create(TN_SEM *sem, TN_UWORD start_value, TN_UWORD max_val);
Разрешен вызов:
В контексте задачи
Параметры функции:
sem
TN_SEM
. Структура должна быть создана до момента вызова функции, статически или динамическиstart_value
max_val
Возвращаемые значения:
TERR_WRONG_PARAM
TERR_EXS
TERR_WCONTEXT
TERR_NO_ERR
Пример вызова:
TN_SEM sem_test; tn_sem_create(&sem_test, 1, 1); /* создается свободный бинарный семафор */