/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
} catch (std::invalid_argument& ia) {
throw std::invalid_argument(std::string("Processes of this example must have a numerical name, not ") +
ia.what());
} catch (std::invalid_argument& ia) {
throw std::invalid_argument(std::string("Processes of this example must have a numerical name, not ") +
ia.what());
std::string msg = "Token";
neighbor_mailbox->put(&msg, task_comm_size);
std::string* res = static_cast<std::string*>(my_mailbox->get());
std::string msg = "Token";
neighbor_mailbox->put(&msg, task_comm_size);
std::string* res = static_cast<std::string*>(my_mailbox->get());
} else {
std::string* res = static_cast<std::string*>(my_mailbox->get());
XBT_INFO("Host \"%u\" received \"%s\"", rank, res->c_str());
} else {
std::string* res = static_cast<std::string*>(my_mailbox->get());
XBT_INFO("Host \"%u\" received \"%s\"", rank, res->c_str());
for (auto const& host : list) {
/* - Give a unique rank to each host and create a @ref relay_runner process on each */
for (auto const& host : list) {
/* - Give a unique rank to each host and create a @ref relay_runner process on each */