Documentation Home >> Headers >> <jss/experimental_future.hpp> Header >> std::experimental::future >> std::experimental::future<>::wait_until Member function

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);

Preconditions:

this->valid() would return true.

Effects:

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.

Returns:

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.

Note:

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.

Throws:

Nothing.

Header

#include <experimental/future>

See Also