sem_trywait()

Ожидать на именованном или безымянном семафоре без блокировки

Прототип:

#include <semaphore.h>
int sem_trywait( sem_t *sem );

Аргументы:

sem
Указатель на объект sem_t.

Библиотека:

libc

Описание:

Функция sem_trywait() уменьшает значение семафора, если значение семафора больше нуля; иначе функция просто завершается.

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

0
Семафор был успешно декрементирован.
-1
Возникла ошибка. Состояние семафора не изменено. Код ошибки записан в errno.

Коды ошибок:

EAGAIN
Семафор уже заблокирован, поэтому он не мог быть немедленно заблокирован функцией sem_trywait().
EDEADLK
Обнаружено состояние взаимной блокировки.
EINVAL
Недопустимый дескриптор sem.
EINTR
Вызов прерван сигналом.

Классификация:

POSIX 1003.1 Semaphores

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

sem_destroy(), sem_init(), sem_post(), sem_wait()




Предыдущий раздел: Описание API системной библиотеки