sem_destroy - уничтожает безымянный семафор
sem_destroy(3)
уничтожает безымянный семафор
ОБЗОР
#include <semaphore.h>
int sem_destroy(sem_t *sem);
Компонуется при указании параметра -pthread.
ОПИСАНИЕ
Функция
sem_destroy() уничтожает безымянный семафор, расположенный по
адресу
sem.
С помощью sem_destroy() должны уничтожаться только семафоры, которые были
инициализированы с помощью sem_init(3).
Уничтожение семафора, заблокированного другим процессом или нитью (в
sem_wait(3)), приводит к непредсказуемым последствиям.
Использование уничтоженного семафора (и повторно не инициализированного с
помощью sem_init(3)) приводит к непредсказуемым результатам.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении
sem_destroy() возвращается 0; при ошибке
возвращается -1, а в
errno содержится код ошибки.
ОШИБКИ
EINVAL
Значение sem не является корректным для семафора.
АТРИБУТЫ
Описание терминов данного раздела смотрите в
attributes(7).
Интерфейс Атрибут Значение
sem_destroy()
безвредность в потоках: безвредно (MT-Safe)
СООТВЕТСТВИЕ СТАНДАРТАМ
POSIX.1-2001, POSIX.1-2008.
ЗАМЕЧАНИЯ
Безымянный семафор должен уничтожаться с помощью
sem_destroy() до
высвобождения памяти, которую он использует. Неследование этому правилу
приводит в некоторых реализациях к утечке ресурсов.