C++ named requirements: SharedLockable (since C++14)
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SharedLockable 要件は、実行エージェント(すなわちスレッド)に対して共有ブロッキングセマンティクスを提供する型の最小限の特性を記述します。
目次 |
要件
型
L
が
SharedLockable
であるためには、型
L
のオブジェクト
m
に対して以下の条件が満たされなければならない:
| 式 | 事前条件 | 効果 | 戻り値 |
|---|---|---|---|
| m. lock_shared ( ) | 現在の実行エージェント(スレッド、プロセス、タスク)がロックを取得できるまでブロックする。例外がスローされた場合、ロックは取得されない。 | ||
| m. try_lock_shared ( ) | 現在の実行エージェント(スレッド、プロセス、タスク)がブロックせずにロックの取得を試みる。例外がスローされた場合、ロックは取得されない。 | true ロックが取得された場合、 false それ以外の場合 | |
| m. unlock_shared ( ) |
現在の実行エージェントが
m
に対して共有ロックを保持している。
|
実行エージェントが保持する共有ロックを解放する。
例外をスローしない。 |
共有ロック
オブジェクトのロックは、
共有ロック
と呼ばれる場合、それは
lock_shared
、
try_lock_shared
、
try_lock_shared_for
または
try_lock_shared_until
メンバー関数の呼び出しによって取得されたものです。
標準ライブラリ
以下の標準ライブラリ型は SharedLockable 要件を満たします:
|
(C++17)
|
共有相互排他機能を提供する
(class) |
|
(C++14)
|
共有相互排他機能を提供し、タイムアウト付きロックを実装する
(class) |