目次 - SDL 3.0 API(機能別) - 同期プリミティブ
同期プリミティブ
概要
SDLはいくつかのスレッド同期プリミティブ(同期基本機構)を提供している.
次の項目は安全なスレッドの使い方に関する複雑な問題を網羅するものではないが, 少し読めば, その機構が何であるか, なぜそれが有用か, そして正しく使うことがが正しく安全なマルチスレッドプログラミングにとって不可欠であることがわかるだろう.
SDLはデータ型も提供している. SDL_InitState型は, 複数のスレッドが同時に最初にしようとするリソースの初期化/終了処理をただ1つのスレッドが行うことを保証するために使える.
関数
- SDL_BroadcastCondition - 条件変数を待つ全てのスレッドを再開する
- SDL_CreateCondition - 新しい条件変数を生成する
- SDL_CreateMutex - 新しいミューテックスを生成する
- SDL_CreateRWLock - 読取/書込ロックを生成する
- SDL_CreateSemaphore - 新しいセマフォを生成する
- SDL_DestroyCondition - 条件変数を破棄する
- SDL_DestroyMutex - SDL_CreateMutex()で生成したミューテックスを破棄する
- SDL_DestroyRWLock - SDL_CreateRWLock()で生成した読取/書込ロックを破棄する
- SDL_DestroySemaphore - セマフォを破棄する
- SDL_GetSemaphoreValue - セマフォの現在の値を得る
- SDL_LockMutex - ミューテックスをロックする
- SDL_LockRWLockForReading - ブロックせずに読取/書込ロックの読取専用ロックを試みる
- SDL_LockRWLockForWriting - ブロックせずに読取/書込ロックの書込ロックを試みる
- SDL_SetInitialized - 初期化状態を完了にする
- SDL_ShouldInit - 初期化が完了しているかをチェックする
- SDL_ShouldQuit - 終了処理が完了しているかをチェックする
- SDL_SignalCondition - 条件変数を待つ1つのスレッドを再開する
- SDL_SignalSemaphore - セマフォの値を1加算し, 待機中のスレッドを再開する
- SDL_TryLockMutex - ブロックせずにミューテックスのロックを試みる
- SDL_TryLockRWLockForReading - 読取/書込ロックを読取専用ロックする
- SDL_TryLockRWLockForWriting - 読取/書込ロックを書込ロックする
- SDL_TryWaitSemaphore - セマフォの値が正であるか調査し, そうならば減算する
- SDL_UnlockMutex - ミューテックスのロックを解除する
- SDL_UnlockRWLock - 読取/書込ロックをロック解除する
- SDL_WaitCondition - 条件変数が通知されるまで待つ
- SDL_WaitConditionTimeout - 条件変数が通知されるか指定の時間が経過するまで待つ
- SDL_WaitSemaphore - セマフォの値が正になるまで待機し, セマフォの値を減算する
- SDL_WaitSemaphoreTimeout - セマフォの値が正になるまで待機し, セマフォの値を減算する(タイムアウト付き)
型
- SDL_Condition - 条件変数(条件を満たすまで複数のスレッドをブロックする手段)の型
- SDL_Mutex - ミューテックス(スレッド間のアクセスを直列化する手段)の型
- SDL_RWLock - 読取専用スレッドは平行して実行できるミューテックスの型
- SDL_Semaphore - セマフォ(スレッド間のアクセスをカウントして管理する手段)の型
構造体
- SDL_InitState - スレッドセーフな初期化と終了で使用する構造体
列挙体
- SDL_InitStatus - SDL_InitState構造体の状態の列挙体
マクロ
- SDL_ACQUIRE - Clangのスレッドセーフ分析アノテーションのラッパーのマクロ
- SDL_ACQUIRE_SHARED - Clangのスレッドセーフ分析アノテーションのラッパーのマクロ
- SDL_ACQUIRED_AFTER - Clangのスレッドセーフ分析アノテーションのラッパーのマクロ
- SDL_ACQUIRED_BEFORE - Clangのスレッドセーフ分析アノテーションのラッパーのマクロ
- SDL_ASSERT_CAPABILITY - Clangのスレッドセーフ分析アノテーションのラッパーのマクロ
- SDL_ASSERT_SHARED_CAPABILITY - Clangのスレッドセーフ分析アノテーションのラッパーのマクロ
- SDL_CAPABILITY - Clangのスレッドセーフ分析アノテーションのラッパーのマクロ
- SDL_EXCLUDES - Clangのスレッドセーフ分析アノテーションのラッパーのマクロ
- SDL_GUARDED_BY - Clangのスレッドセーフ分析アノテーションのラッパーのマクロ
- SDL_NO_THREAD_SAFETY_ANALYSIS - Clangのスレッドセーフ分析アノテーションのラッパーのマクロ
- SDL_PT_GUARDED_BY - Clangのスレッドセーフ分析アノテーションのラッパーのマクロ
- SDL_RELEASE - Clangのスレッドセーフ分析アノテーションのラッパーのマクロ
- SDL_RELEASE_GENERIC - Clangのスレッドセーフ分析アノテーションのラッパーのマクロ
- SDL_RELEASE_SHARED - Clangのスレッドセーフ分析アノテーションのラッパーのマクロ
- SDL_REQUIRES - Clangのスレッドセーフ分析アノテーションのラッパーのマクロ
- SDL_REQUIRES_SHARED - Clangのスレッドセーフ分析アノテーションのラッパーのマクロ
- SDL_RETURN_CAPABILITY - Clangのスレッドセーフ分析アノテーションのラッパーのマクロ
- SDL_SCOPED_CAPABILITY - Clangのスレッドセーフ分析アノテーションのラッパーのマクロ
- SDL_THREAD_ANNOTATION_ATTRIBUTE__ - スレッドセーフ属性を有効にする(Clangのみ)
- SDL_TRY_ACQUIRE - Clangのスレッドセーフ分析アノテーションのラッパーのマクロ
- SDL_TRY_ACQUIRE_SHARED - Clangのスレッドセーフ分析アノテーションのラッパーのマクロ
SDL Wikiへのリンク
SDL3/CategoryMutex - SDL Wiki