Commit 3012486d authored by Dominik Charousset's avatar Dominik Charousset

Fix error handling in remote_group

parent c525c605
...@@ -222,8 +222,7 @@ expected<group> middleman::remote_group(const std::string& group_identifier, ...@@ -222,8 +222,7 @@ expected<group> middleman::remote_group(const std::string& group_identifier,
const std::set<std::string>&) mutable { const std::set<std::string>&) mutable {
auto hdl = actor_cast<actor>(ptr); auto hdl = actor_cast<actor>(ptr);
self->request(hdl, infinite, get_atom::value, group_identifier) self->request(hdl, infinite, get_atom::value, group_identifier)
.then( .then([=](group& grp) mutable { rp.deliver(std::move(grp)); });
[=](group& result) mutable { rp.deliver(std::move(result)); });
}); });
}, },
}; };
...@@ -231,11 +230,12 @@ expected<group> middleman::remote_group(const std::string& group_identifier, ...@@ -231,11 +230,12 @@ expected<group> middleman::remote_group(const std::string& group_identifier,
// Spawn the helper actor and wait for the result. // Spawn the helper actor and wait for the result.
expected<group> result{sec::cannot_connect_to_node}; expected<group> result{sec::cannot_connect_to_node};
scoped_actor self{system(), true}; scoped_actor self{system(), true};
self auto worker = self->spawn<lazy_init + monitored>(two_step_lookup,
->request(self->spawn<lazy_init>(two_step_lookup, actor_handle()), infinite, actor_handle());
get_atom::value) self->send(worker, get_atom::value);
.receive([&](group& grp) { result = std::move(grp); }, self->receive([&](group& grp) { result = std::move(grp); },
[&](error& err) { result = std::move(err); }); [&](error& err) { result = std::move(err); },
[&](down_msg& dm) { result = std::move(dm.reason); });
return result; return result;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment