std::shared_lock<Mutex>::try_lock_for
From cppreference.com
< cpp | thread | shared lock
| 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 よりも長くブロックする可能性があります。
標準では、期間の測定に安定したクロックを使用することが推奨されています。実装が代わりにシステムクロックを使用する場合、待機時間もクロック調整の影響を受ける可能性があります。
関連するミューテックスがない場合、またはミューテックスがすでにロックされている場合は、std::system_error がスローされます。
MutexがSharedTimedLockableの要件を満たさない場合、動作は未定義です。
目次 |
[編集] パラメータ
| 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。
[編集] 例
| このセクションは未完成です 理由: 例がありません |
[編集] 関連項目
| 指定された時間だけミューテックスが利用できない場合に戻る、関連付けられたTimedLockableミューテックスのロック(つまり、所有権の取得)を試みます。 ( std::unique_lock<Mutex>のパブリックメンバー関数) | |
| 関連するミューテックスをロックする (public member function) | |
| 関連するミューテックスのロックを試みる (public member function) | |
| 指定された時点まで、関連するミューテックスのロックを試みる (public member function) | |
| 関連するミューテックスのロックを解除する (public member function) |