SDL Library Documentation
Prev |  | Next

# SDL_CreateSemaphore

## Name

SDL_CreateSemaphore -- Creates a new semaphore and assigns an initial value to it.

## Synopsis

    #include "SDL.h"
    #include "SDL_thread.h"

``SDL_sem *SDL_CreateSemaphore`(Uint32 initial_value);`

## Description

`SDL_CreateSemaphore()` creates a new semaphore and initializes it with the value `initial_value`. Each locking operation on the semaphore by SDL_SemWait, SDL_SemTryWait or SDL_SemWaitTimeout will atomically decrement the semaphore value. The locking operation will be blocked if the semaphore value is not positive (greater than zero). Each unlock operation by SDL_SemPost will atomically increment the semaphore value.

## Return Value

Returns a pointer to an initialized semaphore or NULL if there was an error.

## Examples

    SDL_sem *my_sem;

    my_sem = SDL_CreateSemaphore(INITIAL_SEM_VALUE);

    if (my_sem == NULL) {
            return CREATE_SEM_FAILED;
    }

## See Also

`SDL_DestroySemaphore`, `SDL_SemWait`, `SDL_SemTryWait`, `SDL_SemWaitTimeout`, `SDL_SemPost`, `SDL_SemValue`

Prev | Home | Next
SDL_mutexV | Up | SDL_DestroySemaphore