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

SDL_SpinLock

アトミックスピンロックの型

ヘッダ

SDL3/SDL_atomic.h

構文

typedef int SDL_SpinLock;

詳細

アトミックロックはCPU命令を使った効率的なスピンロックである. しかし, それは飢餓状態に弱く, スレッドがロックしたまま終了すると永遠にスピンしてしまう. そのため, アトミックロック内で実行するコードは最小限にして, APIやシステムコール等の負荷の大きな処理はロック中に行わないようにする必要がある.

ロックしたスレッドの優先度が他のスレッドよりも低くスケジューリングされない場合も飢餓状態に陥る. 一般的には, アトミックロックよりもパフォーマンスと競合時の挙動がよりよいミューテックスを使用するべきである.

アトミックロックで再帰的にロックするのは安全ではない.

移植に関する注意: スピンロック関数と型は必須であり, アトミックエミュレーションコードで使用しているためエミュレートできない.

バージョン

SDL 3.2.0以降

SDL Wikiへのリンク

SDL_SpinLock - SDL Wiki