std::shared_timed_mutex:: try_lock_shared_for
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Exclusive locking | ||||
| Shared locking | ||||
|
shared_timed_mutex::try_lock_shared_for
|
||||
|
template
<
class
Rep,
class
Period
>
bool try_lock_shared_for ( const std:: chrono :: duration < Rep,Period > & timeout_duration ) ; |
(C++14以降) | |
共有モードでのミューテックスのロックを試みます。指定された timeout_duration が経過するか、共有ロックが取得されるかのいずれか早い方までブロックします。ロックの取得に成功した場合は true を返し、それ以外の場合は false を返します。
timeout_duration が timeout_duration. zero ( ) 以下である場合、この関数は try_lock_shared() と同様に動作します。
この関数は、スケジューリングやリソース競合による遅延のため、 timeout_duration よりも長くブロックする可能性があります。
標準では、時間の計測には安定したクロックを使用することが推奨されています。実装がシステムクロックを使用する場合、待機時間はクロック調整の影響を受ける可能性もあります。
try_lock_shared() と同様に、この関数は偽の失敗を許容され、 false を返す場合があります。これは、 timeout_duration 中のいずれかの時点でミューテックスが他のスレッドによってロックされていなかった場合でも発生し得ます。
同じミューテックスに対する前回の unlock() 操作は、この操作が true を返す場合、 synchronizes-with ( std::memory_order で定義される通り)します。
スレッドが既に何らかのモード(共有または排他)で
mutex
を所有している状態で
try_lock_shared_for
が呼び出された場合、動作は未定義です。
目次 |
パラメータ
| timeout_duration | - | ブロックする最大時間 |
戻り値
true ロックの取得に成功した場合、それ以外の場合は false 。
例外
クロック、time_point、またはdurationの実行中にスローされる例外(標準ライブラリで提供されるクロック、タイムポイント、およびデュレーションは例外をスローしません)。
例
|
このセクションは不完全です
理由: 例がありません |
関連項目
|
共有所有権のためにミューテックスをロックしようと試み、ミューテックスが利用できない場合は返る
(public member function) |
|
|
共有所有権のためにミューテックスをロックしようと試み、指定された時間ポイントに達するまで
ミューテックスが利用できない場合は返る (public member function) |
|
|
ミューテックスをロックしようと試み、指定されたタイムアウト期間中
ミューテックスが利用できない場合は返る (public member function) |