C++ 名前付き要件: TimedLockable (C++11 以降)
From cppreference.com
TimedLockable 要件は、実行エージェント (スレッド、プロセス、タスク) に対して、時間制約のある排他的ブロッキングセマンティクスを提供する型の特性を記述します。
目次 |
[編集] 要件
型 L が TimedLockable であるためには、以下が与えられます。
-
rel_timeは、std::chrono::duration の特殊化の値、および -
abs_timeは、std::chrono::time_point の特殊化の値。
L 型のオブジェクト m に対して、以下の条件が満たされる必要があります。
| Expression | 効果 | 戻り値 |
|---|---|---|
| m.try_lock_for(rel_time) | 指定された期間 rel_time、または m のロックが取得されるまでブロックします。 |
true ロックが取得された場合、それ以外の場合は false。 |
| m.try_lock_until(abs_time) | 指定された時刻 abs_time に到達するか、m のロックが取得されるまでブロックします。 |
true ロックが取得された場合、それ以外の場合は false。 |
[編集] ノート
try_lock_for および try_lock_until メンバ関数は、成功時に m の非共有ロックを取得します。
[編集] 標準ライブラリ
以下の標準ライブラリ型は TimedLockable を満たします。
| (C++11) |
タイムアウト付きのロックを実装した相互排他機能を提供する (クラス) |
| (C++11) |
再帰的にロックできる相互排他機能を提供する 同じスレッドによって、タイムアウト付きのロックを実装 (クラス) |
| (C++14) |
共有相互排他機能を提供し、タイムアウト付きのロックを実装する (クラス) |