SharedPromise(SharedPromise<T>&&) noexcept;
SharedPromise& operator=(SharedPromise<T>&&) noexcept;
- /** Return a Future tied to the shared core state. This can be called only
- once, thereafter Future already retrieved exception will be raised. */
+ /**
+ * Return a Future tied to the shared core state. Unlike Promise::getFuture,
+ * this can be called an unlimited number of times per SharedPromise.
+ */
Future<T> getFuture();
/** Return the number of Futures associated with this SharedPromise */
/// handled.
void setInterruptHandler(std::function<void(exception_wrapper const&)>);
- /// Fulfill this SharedPromise<void>
- template <class B = T>
- typename std::enable_if<std::is_void<B>::value, void>::type
- setValue() {
- set(Try<T>());
- }
-
/// Sugar to fulfill this SharedPromise<Unit>
template <class B = T>
typename std::enable_if<std::is_same<Unit, B>::value, void>::type
setValue() {
- set(Try<T>(T()));
+ setTry(Try<T>(T()));
}
/** Set the value (use perfect forwarding for both move and copy) */