目次 - SDL 3.0 API(機能別) - 同期プリミティブ - SDL_CreateRWLock

SDL_CreateRWLock

読取/書込ロックを生成する

ヘッダ

SDL3/SDL_mutex.h

構文

SDL_RWLock * SDL_CreateRWLock(void);

戻り値

(SDL_RWLock *) 初期化されたロック解除状態の読取/書込ロックを戻す. 失敗のときNULLを戻す. SDL_GetError()で詳細を知ることができる.

詳細

読取/書込ロックは複数のスレッドから更新頻度の低い資源にアクセスする場合に便利である. 全てのスレッドからの読取ロックは平行して行える. あるスレッドからの書込ロックは排他的である.

適切な状況ならば, 読取/書込ロックは仮にデータを変更しない場合でも一度に1つのスレッドしか進行しないミューテックスよりも効率的である.

新しく生成された読取/書込ロックは, 全てロック解除の状態から始まる.

他のスレッドで既に書込ロックされている間は, SDL_LockRWLockForReading()またはSDL_LockRWLockForWritingから戻らない. ブロックせずにロックを試みたい場合はSDL_TryLockRWLockForReading()またはSDL_TryLockRWLockForWriting()を使うこと.

SDLの読取/書込ロックは読取ロックのみリエントラント(再入可能)である. 読取/書込ロックの公平, アクセスのFIFOは保証されていない. 書込ロックの優先は保証されていない. 読取専用と書込のアクセスが同時に同一のスレッドからあった場合, 読取/書込ロックは行われない(ロック解除しなければ読取ロックは書込ロックに昇格しない).

バージョン

SDL 3.2.0以降

関連項目

SDL Wikiへのリンク

SDL_CreateRWLock - SDL Wiki