#include "SDL_stdinc.h"#include "SDL_error.h"#include "begin_code.h"#include "close_code.h"Go to the source code of this file.
Defines | |
| #define | SDL_MUTEX_TIMEDOUT 1 |
| #define | SDL_MUTEX_MAXWAIT (~(Uint32)0) |
Typedefs | |
Condition_variable_functions | |
| typedef struct SDL_cond | SDL_cond |
Functions | |
| DECLSPEC SDL_cond *SDLCALL | SDL_CreateCond (void) |
| DECLSPEC void SDLCALL | SDL_DestroyCond (SDL_cond *cond) |
| DECLSPEC int SDLCALL | SDL_CondSignal (SDL_cond *cond) |
| DECLSPEC int SDLCALL | SDL_CondBroadcast (SDL_cond *cond) |
| DECLSPEC int SDLCALL | SDL_CondWait (SDL_cond *cond, SDL_mutex *mut) |
| DECLSPEC int SDLCALL | SDL_CondWaitTimeout (SDL_cond *cond, SDL_mutex *mutex, Uint32 ms) |
Mutex functions | |
| #define | SDL_LockMutex(m) SDL_mutexP(m) |
| #define | SDL_UnlockMutex(m) SDL_mutexV(m) |
| typedef struct SDL_mutex | SDL_mutex |
| DECLSPEC SDL_mutex *SDLCALL | SDL_CreateMutex (void) |
| DECLSPEC int SDLCALL | SDL_mutexP (SDL_mutex *mutex) |
| DECLSPEC int SDLCALL | SDL_mutexV (SDL_mutex *mutex) |
| DECLSPEC void SDLCALL | SDL_DestroyMutex (SDL_mutex *mutex) |
Semaphore functions | |
| typedef struct SDL_semaphore | SDL_sem |
| DECLSPEC SDL_sem *SDLCALL | SDL_CreateSemaphore (Uint32 initial_value) |
| DECLSPEC void SDLCALL | SDL_DestroySemaphore (SDL_sem *sem) |
| DECLSPEC int SDLCALL | SDL_SemWait (SDL_sem *sem) |
| DECLSPEC int SDLCALL | SDL_SemTryWait (SDL_sem *sem) |
| DECLSPEC int SDLCALL | SDL_SemWaitTimeout (SDL_sem *sem, Uint32 ms) |
| DECLSPEC int SDLCALL | SDL_SemPost (SDL_sem *sem) |
| DECLSPEC Uint32 SDLCALL | SDL_SemValue (SDL_sem *sem) |
| #define SDL_MUTEX_MAXWAIT (~(Uint32)0) |
This is the timeout value which corresponds to never time out
| #define SDL_MUTEX_TIMEDOUT 1 |
Synchronization functions which can time out return this value if they time out.
| DECLSPEC int SDLCALL SDL_CondBroadcast | ( | SDL_cond * | cond | ) |
Restart all threads that are waiting on the condition variable,
| DECLSPEC int SDLCALL SDL_CondSignal | ( | SDL_cond * | cond | ) |
Restart one of the threads that are waiting on the condition variable,
| DECLSPEC int SDLCALL SDL_CondWait | ( | SDL_cond * | cond, | |
| SDL_mutex * | mut | |||
| ) |
Wait on the condition variable, unlocking the provided mutex. The mutex must be locked before entering this function! The mutex is re-locked once the condition variable is signaled.
| DECLSPEC int SDLCALL SDL_CondWaitTimeout | ( | SDL_cond * | cond, | |
| SDL_mutex * | mutex, | |||
| Uint32 | ms | |||
| ) |
Waits for at most 'ms' milliseconds, and returns 0 if the condition variable is signaled, SDL_MUTEX_TIMEDOUT if the condition is not signaled in the allotted time, and -1 on error. On some platforms this function is implemented by looping with a delay of 1 ms, and so should be avoided if possible.
| DECLSPEC SDL_cond* SDLCALL SDL_CreateCond | ( | void | ) |
Create a condition variable
| DECLSPEC SDL_mutex* SDLCALL SDL_CreateMutex | ( | void | ) |
Create a mutex, initialized unlocked
| DECLSPEC SDL_sem* SDLCALL SDL_CreateSemaphore | ( | Uint32 | initial_value | ) |
Create a semaphore, initialized with value, returns NULL on failure.
| DECLSPEC void SDLCALL SDL_DestroyCond | ( | SDL_cond * | cond | ) |
Destroy a condition variable
| DECLSPEC void SDLCALL SDL_DestroyMutex | ( | SDL_mutex * | mutex | ) |
Destroy a mutex
| DECLSPEC void SDLCALL SDL_DestroySemaphore | ( | SDL_sem * | sem | ) |
Destroy a semaphore
| DECLSPEC int SDLCALL SDL_mutexP | ( | SDL_mutex * | mutex | ) |
Lock the mutex
| DECLSPEC int SDLCALL SDL_mutexV | ( | SDL_mutex * | mutex | ) |
Unlock the mutex
| DECLSPEC int SDLCALL SDL_SemPost | ( | SDL_sem * | sem | ) |
Atomically increases the semaphore's count (not blocking).
| DECLSPEC int SDLCALL SDL_SemTryWait | ( | SDL_sem * | sem | ) |
Non-blocking variant of SDL_SemWait().
| DECLSPEC Uint32 SDLCALL SDL_SemValue | ( | SDL_sem * | sem | ) |
Returns the current count of the semaphore
| DECLSPEC int SDLCALL SDL_SemWait | ( | SDL_sem * | sem | ) |
This function suspends the calling thread until the semaphore pointed to by sem has a positive count. It then atomically decreases the semaphore count.
| DECLSPEC int SDLCALL SDL_SemWaitTimeout | ( | SDL_sem * | sem, | |
| Uint32 | ms | |||
| ) |
Variant of SDL_SemWait() with a timeout in milliseconds, returns 0 if the wait succeeds, SDL_MUTEX_TIMEDOUT if the wait does not succeed in the allotted time, and -1 on error.
On some platforms this function is implemented by looping with a delay of 1 ms, and so should be avoided if possible.
1.5.8