sem_post()

Инкрементировать значение безымянного семафора

Прототип:

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

Аргументы:

sem
Указатель на объект sem_t, значение которого вы хотите инкрементировать.

Библиотека:

libc

Описание:

Функция sem_post() инкрементирует семафор, на который ссылается аргумент sem. Если существуют потоки заблокированные на этом семафоре, то один из них успешно завершит ожидание в sem_wait(). Разблокируемый поток определяется в соответствии с политиками планирования: выбирается поток с наивысшим приоритетом, который ожидал дольше других потоков с таким же приоритетом.

Функция sem_post() безопасна для использования в многопоточных программах и может быть вызвана из обработчика сигналов.

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

0
Успешное завершение.
-1
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

EINVAL
Недопустимый дескриптор семафора sem.
ENOSYS
Функция sem_post() не поддерживается.

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

POSIX 1003.1 Semaphores

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

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

errno, sem_destroy(), sem_init(), sem_trywait(), sem_wait()




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