NAME
sem_destroy —
destroy an unnamed semaphore (REALTIME)
SYNOPSIS
#include <semaphore.h> int sem_destroy(sem_t *sem);
DESCRIPTION
The sem_destroy() function is used to destroy the unnamed semaphore indicated by sem . Only a semaphore that was created using sem_init(3) may be destroyed using sem_destroy() ; the effect of calling sem_destroy() with a named semaphore is undefined. The effect of subsequent use of the semaphore sem is undefined until sem is re-initialised by another call to sem_init(3) .
It is safe to destroy an initialised semaphore upon which no threads are currently blocked. The effect of destroying a semaphore upon which other threads are currently blocked is undefined.
RETURN VALUE
Upon successful completion, a value of zero is returned. Otherwise, a value of -1 is returned and errno is set to indicate the error.
ERRORS
The sem_destroy() function will fail if:
- [EINVAL]
- The sem argument is not a valid semaphore.
- [ENOSYS]
- The function sem_destroy() is not supported by this implementation.
The sem_destroy() function may fail if:
- [EBUSY]
- There are currently processes blocked on the semaphore.
EXAMPLES
None.
APPLICATION USAGE
None.
FUTURE DIRECTIONS
None.
SEE ALSO
semctl(3) , semget(3) , semop(3) , sem_init(3) , sem_open(3) , <semaphore.h> .
DERIVATION
Derived from the POSIX Realtime Extension (1003.1b-1993/1003.1i-1995)