NAME
sem_destroy — destroy an unnamed POSIX semaphore
SYNOPSIS
#include <sys/semaphore.h>
int sem_destroy(sem_t *sem);
DESCRIPTION
sem_destroy()
is used to destroy an unnamed semaphore. A successful call to
sem_destroy()
will invalidate the unnamed semaphore referred to by
sem
and removes all descriptors referencing it.
The semaphore should have been
created by a previous call to
sem_init()
and there should not be any processes
blocked on it.
To use this function, link in the realtime library by specifying
-lrt
on the compiler or linker command line.
EXAMPLES
The following call to
sem_destroy()
will destroy an unnamed semaphore referred to by
sem
and remove all descriptors referencing it.
RETURN VALUE
If the semaphore was destroyed and the descriptors referencing it were
removed,
sem_destroy()
returns 0 to the caller.
If the semaphore could not be destroyed, the call returns -1 and sets
errno
to indicate the error.
ERRORS
sem_destroy()
fails and does not perform the requested operation
if any of the following conditions are encountered:
- [EBUSY]
There are threads currently blocked on the semaphore or
there are outstanding locks held on the semaphore.
- [EINVAL]
The argument
sem
is not a valid unnamed semaphore.
STANDARDS CONFORMANCE
sem_destroy(): POSIX