Store an exception in the asynchronous result associated with *this
without making that result ready until the current
thread exits.
void set_exception_at_thread_exit(std::exception_ptr e);
- Preconditions:
*thishas an associated asynchronous result.(bool)eistrue.- Effects:
Store
ein the asynchronous result associated with*this. Schedule the associated asynchronous result to be made ready when the current thread exits.- Postconditions:
The asynchronous result associated with
*thishas a stored exception, but is not ready until the current thread exits. Threads blocked waiting for the asynchronous result will be unblocked when the current thread exits.- Throws:
An exception of type
std::future_errorwith an error code ofstd::future_errc::promise_already_satisfiedif the asynchronous result already has a stored value or exception.- Synchronization:
Multiple concurrent calls to
set_value(),set_value_at_thread_exit(),set_exception()andset_exception_at_thread_exit()are serialized. The completion of the thread that made a successful call toset_exception_at_thread_exit()happens-before a call tostd::future<ResultType>::get()orstd::shared_future<ResultType>::get()which retrieves the exception stored.
Header
#include <future>