Wait until the asynchronous result associated with an instance of std::experimental::future
is ready, or until a specified time period has elapsed.
template<typename Clock,typename Duration> future_status wait_until( std::chrono::time_point<Clock,Duration> const& absolute_time);
this->valid()
would return true
.
If the asynchronous result associated with *this
contains a deferred function
arising from a call to std::experimental::async
that has not yet
started execution, returns immediately without blocking. Otherwise
blocks until the asynchronous result associated with *this
is ready or Clock::now()
returns a time equal to or later
than absolute_time
.
std::experimental::future_status::deferred
if the asynchronous
result associated with *this
contains a deferred function
arising from a call to std::experimental::async
that has not yet
started execution, std::experimental::future_status::ready
if the asynchronous result associated with *this
is ready,
std::experimental::future_status::timeout
if Clock::now()
returns a time equal to or later
than absolute_time
.
There is no guarantee as to how long the calling thread will be
blocked for, only that if the function returns std::experimental::future_status::timeout
then Clock::now()
returned a time equal to or later than absolute_time
at the point at which the thread became unblocked.
Nothing.
#include <experimental/future>