January 22, 2003 SEM_DESTROY 3

### NAME

sem_destroy - destroy an unnamed semaphore

### LIBRARY

POSIX Real-time Library (librt, -lrt)

### SYNOPSIS

```int` sem_destroy(```sem_t *sem`)

### DESCRIPTION

The sem_destroy(``) function destroys the unnamed semaphore pointed to by ```sem`. After a successful call to sem_destroy(``), ```sem` is unusable until re-initialized by another call to sem_init(``).

### RETURN VALUES

### ERRORS

sem_destroy(``) will fail if:

[```EBUSY`]
  There are currently threads blocked on the semaphore that ```sem` points to.

[```EINVAL`]
  ```sem` points to an invalid semaphore.

### SEE ALSO

sem_init(3)

### STANDARDS

sem_destroy(``) conforms to ISO/IEC 9945-1:1996 (``POSIX.1'') .

POSIX does not define the behavior of sem_destroy(``) if called while there are threads blocked on ```sem`, but this implementation is guaranteed to return -1 and set errno to ```EBUSY` if there are threads blocked on ```sem`.