man pages section 3: Basic Library Functions

Exit Print View

Updated: July 2014
 
 

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(5) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Interface Stability
Committed
MT-Level
MT-Safe
Standard

See also

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