SEM_DESTROY(3C) Standard C Library Functions SEM_DESTROY(3C)


NAME


sem_destroy - destroy an unnamed semaphore

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(3C)
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-initialized by another call to
sem_init(3C).


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 VALUES


If successful, sem_destroy() returns 0, otherwise it returns -1 and sets
errno to indicate the error.

ERRORS


The sem_destroy() function will fail if:

EINVAL
The sem argument is not a valid semaphore.


The sem_destroy() function may fail if:

EBUSY
There are currently processes (or LWPs or threads) blocked on
the semaphore.


ATTRIBUTES


See attributes(7) for descriptions of the following attributes:


+--------------------+-------------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-------------------+
|Interface Stability | Committed |
+--------------------+-------------------+
|MT-Level | MT-Safe |
+--------------------+-------------------+
|Standard | See standards(7). |
+--------------------+-------------------+

SEE ALSO


sem_init(3C), sem_open(3C), attributes(7), standards(7)


February 5, 2008 SEM_DESTROY(3C)