目次 - SDL 2.0 API(機能別) - アトミック操作

アトミック操作

概要

アトミック(不可分)操作.

重要: もしあなたがロックしない並列プログラミングに精通していないのであれば, この分類で使うのはアトミックロックと参照カウントのみにして, それ以外は完全なミューテックスでデータ構造を守るべきだ.

これは本当に危険である!

ロックしないプログラミングとその問題についてはここで取り上げられている: https://learn.microsoft.com/en-us/windows/win32/dxtecharts/lockless-programming

参考になる情報はここにもある:

これらの操作は, プロセッサ固有のアトミック操作を実際に使って実装しているかもしれないし, そうでないかもしれない. もし可能であれば, 本当のプロセッサのアトミック操作で実装されている. 可能でなければ, アトミック操作可能なロックを使って実装されている.

メモリを操作するアトミック操作は全てメモリバリアである.

関数

  1. SDL_AddAtomicInt
  2. SDL_AddAtomicU32
  3. SDL_CompareAndSwapAtomicInt
  4. SDL_CompareAndSwapAtomicPointer
  5. SDL_CompareAndSwapAtomicU32
  6. SDL_GetAtomicInt
  7. SDL_GetAtomicPointer
  8. SDL_GetAtomicU32
  9. SDL_LockSpinlock
  10. SDL_MemoryBarrierAcquireFunction
  11. SDL_MemoryBarrierReleaseFunction
  12. SDL_SetAtomicInt
  13. SDL_SetAtomicPointer
  14. SDL_SetAtomicU32
  15. SDL_TryLockSpinlock
  16. SDL_UnlockSpinlock

  1. SDL_SpinLock

構造体

  1. SDL_AtomicInt
  2. SDL_AtomicU32

マクロ

  1. SDL_AtomicDecRef
  2. SDL_AtomicIncRef
  3. SDL_CompilerBarrier
  4. SDL_CPUPauseInstruction
  5. SDL_MemoryBarrierAcquire
  6. SDL_MemoryBarrierRelease

SDL Wikiへのリンク

SDL3/CategoryAtomic - SDL Wiki