void SDL_LockRWLockForReading(SDL_RWLock *rwlock);
| SDL_RWLock * | rwlock | ロックする読取/書込ロック |
この関数は読取/書込ロックが利用可能(別のスレッドから書込ロックされていない状態)になるまでブロックする. 読取ロックは他の全てのスレッドから同時に行える. (書込ロックは一度に1つのスレッドのみが行え, 他のスレッドは読取ロックも書込ロックも同時にはできない.)
既に読取ロックされたロックをさらに読取ロックすることはできる. 他のスレッドから利用可能になるにはロックと同じ回数だけロック解除する必要がある(これは「再帰ロック」として知られている).
書込ロックは再帰ロックでないので注意すること(再帰ロックは読取ロックのみ).
あるスレッドで, 既に書込ロックされたロックを読取ロックすることはできない. これは未定義の動作を引き起こす. 読取ロックの前に書込ロックを解除すること. (しかし, 当然のことだが, 書込ロックしている間は読取ロックをする必要はない.)
この関数が失敗することはない. rwlockがNULLの場合, 何もロックせずに即座に戻る.
rwlockが有効ならば, この関数は常にロック可能になるまでブロックし, ロックすると戻る.