sem_destroy()

Updated: April 19, 2023

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.

Don't use a semaphore after it's been destroyed. If you destroy a semaphore that other threads 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

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