Сервис увеличивает счетчик свободных ресурсов семафора или, другими словами, освобождает семафор.
Если семафор был занят, то задача, стоящая первой в очереди ожидающих семафор, активируется. Счетчик ресурсов семафора при этом не меняется.
Если очередь задач ожидающих семафор пуста, и счетчик свободных ресурсов меньше максимального значения, то он увеличивается на единицу. Если счетчик свободных ресурсов равен максимальному значению, то он не увеличивается и сервис возвращает код TERR_OVERFLOW
.
Вызов:
TN_RETVAL tn_sem_signal (TN_SEM *sem);
Разрешен вызов:
В контексте задачи
Параметры функции:
sem
Возвращаемые значения:
TERR_WRONG_PARAM
TERR_NOEXS
TERR_WCONTEXT
TERR_OVERFLOW
TERR_NO_ERR
Пример вызова:
TN_SEM sem_test; tn_sem_signal(&sem_test);