std::shared_lock<Mutex>::try_lock_for
提供: cppreference.com
<tbody>
</tbody>
template< class Rep, class Period > bool try_lock_for( const std::chrono::duration<Rep,Period>& timeout_duration ); |
(C++14以上) | |
紐付けられているミューテックスの共有モードでのロックを試みます。 指定された timeout_duration が経過するか、ロックを取得するか、どちらかが先に発生するまでブロックします。 ロックの取得に成功すれば true を返し、そうでなければ false を返します。 実質的に mutex()->try_lock_shared_for(timeout_duration) を呼びます。
スケジューリングやリソースの奪い合いによる遅延のため、この関数は timeout_duration より長くブロックする可能性があります。
標準は時間計測に steady_clock を使用することを推奨しています。 処理系が代わりに system_clock を使用する場合、待機時間は時計調整の影響も受けるかもしれません。
紐付けられているミューテックスがない場合、またはそのミューテックスがすでにロックされている場合、 std::system_error が投げられます。
引数
| timeout_duration | - | ブロックする最大時間 |
戻り値
ミューテックスの所有権の取得に成功した場合 true、そうでなければ false。
例外
mutex()->try_lock_shared_for(timeout_duration)によって投げられるあらゆる例外。
- 紐付けられているミューテックスがない場合、エラーコード std::errc::operation_not_permitted を持つ std::system_error。
- ミューテックスがすでにロックされている場合、エラーコード std::errc::resource_deadlock_would_occur を持つ std::system_error。
例
| This section is incomplete Reason: no example |
関連項目
| 紐付けられている TimedLockable なミューテックスのロックを試みます。 指定された時間ミューテックスが利用可能にならなければ戻ります ( std::unique_lock<Mutex>のパブリックメンバ関数)
| |
| 紐付けられているミューテックスをロックします (パブリックメンバ関数) | |
| 紐付けられているミューテックスのロックを試みます (パブリックメンバ関数) | |
| 指定された時点まで、紐付けられているミューテックスのロックを試みます (パブリックメンバ関数) | |
| 紐付けられているミューテックスのロックを解除します (パブリックメンバ関数) |