Available Languages?:

tn_sem_polling()

Сервис предназначен для захвата одного ресурса семафора без перевода задачи в состояние ожидания.

Если счетчик свободных ресурсов семафора больше нуля (семафор свободен), он уменьшается на единицу. Если счетчик свободных ресурсов семафора равен нулю (семафор захвачен), сервис возвращает код TERR_TIMEOUT. Счетчик ресурсов семафора не меняется. В любом случае задача не блокируется.

Вызов:

TN_RETVAL tn_sem_polling (TN_SEM *sem);

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

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

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

sem
указатель на структуру семафора


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

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


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

TN_SEM    sem_test;
 
if (tn_sem_polling(&sem_test) == TERR_NO_ERR)
{
    /* ... */
}



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

 
tnkernel/ref/sem/tn_sem_polling.txt · Последние изменения: 27.04.2008 02:42 От admin
 
Creative Commons License Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki