SDL Wiki
(This is the documentation for SDL3, which is under heavy development and the API is changing! SDL2 is the current stable version!)


Create a new mutex.

Header File

Defined in <SDL3/SDL_mutex.h>


SDL_Mutex * SDL_CreateMutex(void);

Return Value

(SDL_Mutex *) Returns the initialized and unlocked mutex or NULL on failure; call SDL_GetError() for more information.


All newly-created mutexes begin in the unlocked state.

Calls to SDL_LockMutex() will not return while the mutex is locked by another thread. See SDL_TryLockMutex() to attempt to lock without blocking.

SDL mutexes are reentrant.


This function is available since SDL 3.0.0.

Code Examples

SDL_Mutex *mutex;

mutex = SDL_CreateMutex();
if (!mutex) {
  SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't create mutex\n");
  return 1;

if (SDL_TryLockMutex(mutex) == 0) {
  /* Do stuff while mutex is locked */
} else {
  SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't lock mutex\n");


See Also

CategoryAPI, CategoryAPIFunction, CategoryMutex

[ edit | delete | history | feedback | raw ]

[ front page | index | search | recent changes | git repo | offline html ]

All wiki content is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0).
Wiki powered by ghwikipp.