std::unique_lock<Mutex>::try_lock_for
From cppreference.com
< cpp | thread | unique lock
| template< class Rep, class Period > bool try_lock_for( const std::chrono::duration<Rep, Period>& timeout_duration ); |
(C++11以降) | |
関連するミューテックスのロック(すなわち、所有権の取得)を試みます。指定された timeout_duration が経過するか、ロックが取得されるか、どちらか早い方までブロックします。ロックの取得に成功した場合は true を返し、それ以外の場合は false を返します。実質的に mutex()->try_lock_for(timeout_duration) を呼び出します。
スケジューリング遅延やリソース競合遅延のため、この関数は timeout_duration よりも長くブロックする可能性があります。
標準では、期間の測定に安定したクロックを使用することが推奨されています。実装が代わりにシステムクロックを使用する場合、待機時間もクロック調整の影響を受ける可能性があります。
関連するミューテックスが存在しない場合、またはミューテックスがこの 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。
[編集] 例
| このセクションは未完成です 理由: 例がありません |
[編集] 関連項目
| 関連付けられたミューテックスをロックします(つまり、所有権を取得します)。 (public member function) | |
| 関連付けられたミューテックスをブロックせずにロックしようとします(つまり、所有権を取得します)。 (public member function) | |
| 指定された期間、関連するミューテックスのロックを試みる ( std::shared_lock<Mutex> の public メンバ関数) | |
| 指定された時間点に達するまでミューテックスが利用できない場合に戻る、関連付けられたTimedLockableミューテックスのロック(つまり、所有権の取得)を試みます。 (public member function) | |
| 関連付けられたミューテックスをアンロックします(つまり、所有権を解放します)。 (public member function) |