std::shared_lock<Mutex>::try_lock_until
From cppreference.com
< cpp | thread | shared lock
| template< class Clock, class Duration > bool try_lock_until( const std::chrono::time_point<Clock,Duration>& timeout_time ); |
(C++14以降) | |
関連するミューテックスを共有モードでロックしようとします。指定された timeout_time に達するか、ロックが取得されるまでブロックします。ロックの取得に成功した場合は true を返し、それ以外の場合は false を返します。timeout_time を超えてブロックする可能性があります。
実質的には mutex()->try_lock_shared_until(timeout_time) を呼び出します。
関連するミューテックスがない場合、またはミューテックスがすでにロックされている場合は、std::system_error がスローされます。
Clock は Clock の要件を満たす必要があります。Mutex が SharedTimedLockable の要件を満たさない場合、動作は未定義です。 std::chrono::is_clock_v<Clock> が false の場合、プログラムは形式エラーとなります。(C++20以降)
目次 |
[編集] パラメータ
| timeout_time | - | ブロックする最大時間点 |
[編集] 戻り値
true ミューテックスの所有権が正常に取得された場合、false それ以外の場合。
[編集] 例外
- mutex()->try_lock_shared_for(timeout_time) によってスローされる例外。
- 関連するミューテックスが存在しない場合は、エラーコード std::errc::operation_not_permitted を持つ std::system_error。
- ミューテックスがすでにロックされている場合、エラーコード std::errc::resource_deadlock_would_occur を持つ std::system_error。
[編集] 例
| このセクションは未完成です 理由: 例がありません |
[編集] 関連項目
| 関連するミューテックスをロックする (public member function) | |
| 関連するミューテックスのロックを試みる (public member function) | |
| 指定された期間、関連するミューテックスのロックを試みる (public member function) | |
| 関連するミューテックスのロックを解除する (public member function) | |
| 指定された時間点に達するまでミューテックスが利用できない場合に戻る、関連付けられたTimedLockableミューテックスのロック(つまり、所有権の取得)を試みます。 ( std::unique_lock<Mutex> の public メンバ関数) |