目次 - SDL 2.0 API(機能別) - アトミック操作
アトミック操作
概要
アトミック(不可分)操作.
重要: もしあなたがロックしない並列プログラミングに精通していないのであれば, この分類で使うのはアトミックロックと参照カウントのみにして, それ以外は完全なミューテックスでデータ構造を守るべきだ.
これは本当に危険である!
ロックしないプログラミングとその問題についてはここで取り上げられている: https://learn.microsoft.com/en-us/windows/win32/dxtecharts/lockless-programming
参考になる情報はここにもある:
これらの操作は, プロセッサ固有のアトミック操作を実際に使って実装しているかもしれないし, そうでないかもしれない.
もし可能であれば, 本当のプロセッサのアトミック操作で実装されている.
可能でなければ, アトミック操作可能なロックを使って実装されている.
メモリを操作するアトミック操作は全てメモリバリアである.
関数
- SDL_AddAtomicInt
- SDL_AddAtomicU32
- SDL_CompareAndSwapAtomicInt
- SDL_CompareAndSwapAtomicPointer
- SDL_CompareAndSwapAtomicU32
- SDL_GetAtomicInt
- SDL_GetAtomicPointer
- SDL_GetAtomicU32
- SDL_LockSpinlock
- SDL_MemoryBarrierAcquireFunction
- SDL_MemoryBarrierReleaseFunction
- SDL_SetAtomicInt
- SDL_SetAtomicPointer
- SDL_SetAtomicU32
- SDL_TryLockSpinlock
- SDL_UnlockSpinlock
型
- SDL_SpinLock
構造体
- SDL_AtomicInt
- SDL_AtomicU32
マクロ
- SDL_AtomicDecRef
- SDL_AtomicIncRef
- SDL_CompilerBarrier
- SDL_CPUPauseInstruction
- SDL_MemoryBarrierAcquire
- SDL_MemoryBarrierRelease
SDL Wikiへのリンク
SDL3/CategoryAtomic - SDL Wiki