table of contents
SDL_AtomicInt(3type) | SDL3 DATATYPES | SDL_AtomicInt(3type) |
NAME¶
SDL_AtomicInt - A type representing an atomic integer value.
HEADER FILE¶
Defined in SDL3/SDL_atomic.h
SYNOPSIS¶
#include "SDL3/SDL.h"
typedef struct SDL_AtomicInt { int value; } SDL_AtomicInt;
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_AtomicSet
all other threads, regardless of the CPU it is running on, will see that
value when retrieved with
SDL_AtomicGet , 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.0.0.
SEE ALSO¶
SDL_AtomicCompareAndSwap(3), SDL_AtomicGet(3), SDL_AtomicSet(3), SDL_AtomicAdd(3)
SDL 3.1.2 | Simple Directmedia Layer |