FutureStateBase(FutureStateBase const&) = delete;
FutureStateBase& operator=(FutureStateBase const&) = delete;
- void schedule(simgrid::xbt::Task<void()>&& job);
+ XBT_PUBLIC(void) schedule(simgrid::xbt::Task<void()>&& job);
void set_exception(std::exception_ptr exception)
{
status_ = FutureStatus::done;
if (exception_) {
std::exception_ptr exception = std::move(exception_);
+ exception_ = nullptr;
std::rethrow_exception(std::move(exception));
}
}
}
/** Get the value from the future
- *
- * This is expected to be called
*
* The future must be valid and ready in order to make this call.
* @ref std::future blocks when the future is not ready but we are
return std::move(result);
}
-/** Producer side of a @simgrid::kernel::Future
+/** Producer side of a @ref simgrid::kernel::Future
*
* A @ref Promise is connected to some `Future` and can be used to
* set its result.