sem_destroy()

Destroy an unnamed semaphore

Synopsis:

#include <semaphore.h>

int sem_destroy( sem_t * sem );

Arguments:

sem
A pointer to the sem_t object for the semaphore that you want to destroy.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The sem_destroy() function destroys the unnamed semaphore referred to by the sem argument. The semaphore must have been previously initialized by the sem_init() function.

The effect of using a semaphore after it has been destroyed is undefined. If you destroy a semaphore that other processes are currently blocked on, they're unblocked, with an error (EINVAL).


Note: Don't mix named semaphore operations (sem_open() and sem_close()) with unnamed semaphore operations (sem_init() and sem_destroy()) on the same semaphore.

Returns:

0
Success.
-1
An error occurred (errno is set).

Errors:

EINVAL
Invalid semaphore descriptor sem.

Classification:

POSIX 1003.1 SEM

Safety:
Cancellation point No
Interrupt handler No
Signal handler Yes
Thread Yes

See also:

sem_init(), sem_post(), sem_trywait(), sem_wait()