std::shared_lock<Mutex>:: try_lock_for
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Shared locking | ||||
|
shared_lock::try_lock_for
|
||||
| Modifiers | ||||
| Observers | ||||
| Non-member functions | ||||
|
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::system_error が std::errc::operation_not_permitted のエラーコードで送出される。
- ミューテックスが既にロックされている場合、 std::system_error が std::errc::resource_deadlock_would_occur のエラーコードでスローされる。
例
|
このセクションは不完全です
理由:例がありません |
関連項目
|
関連付けられた
TimedLockable
ミューテックスのロックを試み(つまり所有権を取得し)、ミューテックスが指定された時間利用できない場合に返る
(
std::unique_lock<Mutex>
の公開メンバ関数)
|
|
|
関連付けられたミューテックスをロックする
(公開メンバ関数) |
|
|
関連付けられたミューテックスのロックを試みる
(公開メンバ関数) |
|
|
指定された時間ポイントまで、関連付けられたミューテックスのロックを試みる
(公開メンバ関数) |
|
|
関連付けられたミューテックスをアンロックする
(公開メンバ関数) |