Commit 98e2a20a authored by Dominik Charousset's avatar Dominik Charousset

parallelized connection establishments

parent ac81fea9
......@@ -296,13 +296,18 @@ void client_mode(Iterator first, Iterator last) {
for (size_t j = 0; j < remotes.size(); ++j) {
if (i != j) {
auto& r = remotes[j];
send(remote_actors[i],
atom("add_pong"), r.first, r.second);
receive (
send(remote_actors[i], atom("add_pong"), r.first, r.second);
}
}
}
{ // collect {ok} messages
size_t i = 0;
size_t end = remote_actors.size() * (remote_actors.size() - 1);
receive_for(i, end) (
on(atom("ok")) >> []() {
},
on(atom("error"), arg_match) >> [&](string const& str) {
cout << "error on node " << i << ": " << str << endl;
cout << "error: " << str << endl;
for (auto& x : remote_actors) {
send(x, atom("purge"));
}
......@@ -323,17 +328,16 @@ void client_mode(Iterator first, Iterator last) {
}
);
}
}
}
// kickoff
//cout << "setup done" << endl;
//cout << "kickoff, init value = " << init_value << endl;
for (auto& r : remote_actors) {
send(r, atom("kickoff"), init_value);
}
{ // collect {done} messages
size_t i = 0;
size_t num_pings = remote_actors.size() * (remote_actors.size() - 1);
receive_for(i, num_pings) (
size_t end = remote_actors.size() * (remote_actors.size() - 1);
receive_for(i, end) (
on(atom("done")) >> []() {
//cout << "...done..." << endl;
},
......@@ -342,6 +346,7 @@ void client_mode(Iterator first, Iterator last) {
throw std::logic_error("");
}
);
}
await_all_others_done();
}
......
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