std::unique_lock<Mutex>::try_lock_for
提供: cppreference.com
< cpp | thread | unique lock
template<class Rep, class Period > bool try_lock_for(conststd::chrono::duration<Rep,Period>& timeout_duration ); | (C++11以上) | |
紐付けられているミューテックスのロックを試みます。 指定された timeout_duration
が経過するか、ロックを取得するか、どちらかが先に発生するまでブロックします。 ロックの取得に成功すれば true を返し、そうでなければ false を返します。 実質的に mutex()->try_lock_for(timeout_duration) を呼びます。
スケジューリングやリソースの奪い合いによる遅延のため、この関数は timeout_duration
より長くブロックする可能性があります。
標準は時間計測に steady_clock を使用することを推奨しています。 処理系が代わりに system_clock を使用する場合、待機時間は時計調整の影響も受けるかもしれません。
紐付けられているミューテックスがない場合、またはそのミューテックスがこの std::unique_lock
によってすでにロックされている場合、 std::system_error が投げられます。
目次 |
[編集]引数
timeout_duration | - | ブロックする最大時間 |
[編集]戻り値
ミューテックスの所有権の取得に成功した場合 true、そうでなければ false。
[編集]例外
- mutex()->try_lock_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なミューテックスのロックを試みます。 指定された時点までミューテックスが利用可能にならなければ戻ります (パブリックメンバ関数) | |
紐付けられているミューテックスのロックを解除します (パブリックメンバ関数) |