Scroll to navigation

SDL_AtomicU32(3type) SDL3 DATATYPES SDL_AtomicU32(3type)

NAME

SDL_AtomicU32 - A type representing an atomic unsigned 32-bit value.

HEADER FILE

Defined in SDL3/SDL_atomic.h

SYNOPSIS

#include "SDL3/SDL.h"
typedef struct SDL_AtomicU32 { Uint32 value; } SDL_AtomicU32;

DESCRIPTION

This can be used to manage a value that is synchronized across multiple CPUs without a race condition; when an app sets a value with

SDL_SetAtomicU32
all other threads, regardless of the CPU it is running on, will see that value when retrieved with

SDL_GetAtomicU32 , regardless of CPU caches, etc.

This is also useful for atomic compare-and-swap operations: a thread can change the value as long as its current value matches expectations. When done in a loop, one can guarantee data consistency across threads without a lock (but the usual warnings apply: if you don't know what you're doing, or you don't do it carefully, you can confidently cause any number of disasters with this, so in most cases, you _should_ use a mutex instead of this!).

This is a struct so people don't accidentally use numeric operations on it directly. You have to use SDL atomic functions.

AVAILABILITY

This struct is available since SDL 3.1.3.

SEE ALSO

(3), SDL_CompareAndSwapAtomicU32(3), (3), SDL_GetAtomicU32(3), (3), SDL_SetAtomicU32(3), (3), SDL_AddAtomicU32(3)

SDL 3.1.6 Simple Directmedia Layer