37 #include "Deffered.hpp" 38 #include "../api/ExecutionContext.hpp" 39 #include "../utils/Exception.hpp" 40 #include "../traits/callback_traits.hpp" 41 #include "../api/Error.hpp" 49 std::vector<T> result;
56 auto container = std::make_shared<Container<T>>();
58 container->result.resize(futures.size());
59 auto deffered = std::make_shared<Deffered<std::vector<T>>>();
60 for (
int i = 0; i < futures.size(); ++i) {
61 futures[i].onComplete(context, [container, deffered, i](
const Try<T>& result) {
62 std::lock_guard<std::mutex> lock(container->lock);
63 if (deffered->hasValue())
65 if (result.isSuccess()) {
66 container->result[i] = result.getValue();
68 if (container->count == container->result.size())
69 deffered->setValue(container->result);
72 deffered->setError(result.getFailure());
Definition: Deffered.hpp:49
Definition: FutureUtils.hpp:48
Definition: Account.cpp:8