SyncSemPost(), SyncSemPost_r()

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

Прототип:

#include <sys/neutrino.h>
int SyncSemPost( sync_t *sync );
int SyncSemPost_r( sync_t *sync );

Аргументы:

sync
Указатель на объект синхронизации sync_t.

Библиотека:

libc

Описание:

Систенмые вызовы SyncSemPost() и SyncSemPost_r() инкрементируют значение счетчика семафора sync. Если существуют блокированные на семафоре потоки, один из них (дольше всех ждущий) разблокируется.

Эти функции эквивалентны, за исключением способа информирования об ошибках.


Note: Следует ориентироваться на POSIX-функцию sem_post() вместо явного использования системного вызова SyncSemPost().

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

SyncSemPost()
Если возникла ошибка функция возвращает -1, код ошибки записывается в errno. Любое другое возвращенное значение считается успешным завершением.
SyncSemPost_r()
EOK возвращается при успешном завершении. Функция НЕ устанавливает errno. При возникновении ошибки функция возвращает один из представленных ниже кодов.

Коды ошибок:

EAGAIN
Недостаточно памяти для создания ядерного объекта sync.
EFAULT
Некорректный указатель.
EINTR
Вызов был прерван сигналом.
EINVAL
Указатель sync не характеризует корректный семафор.

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

ЗОСРВ «Нейтрино»

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

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

sync_t, sem_destroy(), sem_init(), sem_post(), sem_trywait(), sem_wait(), SyncDestroy(), SyncSemWait(), SyncTypeCreate()




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