std::shared_future<T>:: wait_until
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Getting the result | ||||
| State | ||||
|
shared_future::wait_until
|
|
template
<
class
Clock,
class
Duration
>
std:: future_status wait_until ( const std:: chrono :: time_point < Clock,Duration > & timeout_time ) const ; |
(C++11以降) | |
wait_until
は結果が利用可能になるまで待機します。指定された
timeout_time
に達するか、結果が利用可能になるか、いずれか早い方の事象が発生するまでブロックします。戻り値は
wait_until
が戻った理由を示します。
もし将来の結果が async の呼び出し結果であり、遅延評価が使用された場合、この関数は待機せずに即座に返ります。
valid()
がこの関数の呼び出し前に
false
である場合、または
Clock
が
Clock
要件を満たさない場合、動作は未定義です。
std::
chrono
::
is_clock_v
<
Clock
>
が
false
の場合、プログラムは不適格です。
(C++20以降)
目次 |
パラメータ
| timeout_time | - | ブロックする最大時間ポイント |
戻り値
| 定数 | 説明 |
| future_status::deferred | 共有状態は遅延評価を使用した遅延関数を含んでおり、結果は明示的に要求されたときにのみ計算される |
| future_status::ready | 結果の準備が完了している |
| future_status::timeout | タイムアウトが発生した |
例外
クロック、time_point、またはdurationの実行中にスローされる例外(標準ライブラリで提供されるクロック、タイムポイント、およびデュレーションは例外をスローしません)。
注記
実装では、呼び出し前に valid ( ) == false の場合を検出し、 std::future_error を future_errc::no_state のエラー条件で送出することが推奨される。
標準では、
timeout_time
に関連付けられたクロックを使用して時間を計測することが推奨されています。このクロックは単調増加クロックである必要はありません。クロックが不連続に調整された場合のこの関数の動作については保証されませんが、既存の実装では
timeout_time
を
Clock
から
std::chrono::system_clock
に変換し、POSIXの
pthread_cond_timedwait
に委譲するため、システムクロックに対する調整は尊重されますが、ユーザー提供の
Clock
に対する調整は尊重されません。いずれの場合も、スケジューリングやリソース競合による遅延のため、
timeout_time
が経過した後よりも長く待機する可能性があります。
例
|
このセクションは不完全です
理由: 例がありません |
関連項目
|
結果が利用可能になるまで待機
(公開メンバ関数) |
|
|
結果を待機し、指定されたタイムアウト期間内に利用可能でない場合は返る
(公開メンバ関数) |