X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e709643ef0c5b61c6c878016c418bffa2b1b20cd..e080adacaf1ba847ad467f5b8d21da385636ed3c:/examples/s4u/platform-failures/s4u-platform-failures.cpp diff --git a/examples/s4u/platform-failures/s4u-platform-failures.cpp b/examples/s4u/platform-failures/s4u-platform-failures.cpp index f55e2b0b31..e0d6ba3077 100644 --- a/examples/s4u/platform-failures/s4u-platform-failures.cpp +++ b/examples/s4u/platform-failures/s4u-platform-failures.cpp @@ -3,13 +3,13 @@ /* 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 example shows how to work with the state profile of an host or a link, +/* This example shows how to work with the state profile of a host or a link, * specifying when the resource must be turned on or off. * * To set such a profile, the first way is to use a file in the XML, while the second is to use the programmatic * interface. Once this profile is in place, the resource will automatically be turned on and off. * - * The actors running on an host that is turned off are forcefully killed + * The actors running on a host that is turned off are forcefully killed * once their on_exit callbacks are executed. They cannot avoid this fate. * Since we specified on_failure="RESTART" for each actors in the XML file, * they will be automatically restarted when the host starts again. @@ -18,25 +18,24 @@ */ #include "simgrid/s4u.hpp" -#include "xbt/str.h" XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_test, "Messages specific for this s4u example"); -static void master(int argc, char* argv[]) +static void master(std::vector args) { - xbt_assert(argc == 5, "Expecting one parameter"); + xbt_assert(args.size() == 5, "Expecting one parameter"); simgrid::s4u::Mailbox* mailbox; - long number_of_tasks = xbt_str_parse_int(argv[1], "Invalid amount of tasks: %s"); - double comp_size = xbt_str_parse_double(argv[2], "Invalid computational size: %s"); - long comm_size = xbt_str_parse_int(argv[3], "Invalid communication size: %s"); - long workers_count = xbt_str_parse_int(argv[4], "Invalid amount of workers: %s"); + long number_of_tasks = std::stol(args[1]); + double comp_size = std::stod(args[2]); + long comm_size = std::stol(args[3]); + long workers_count = std::stol(args[4]); XBT_INFO("Got %ld workers and %ld tasks to process", workers_count, number_of_tasks); for (int i = 0; i < number_of_tasks; i++) { mailbox = simgrid::s4u::Mailbox::by_name(std::string("worker-") + std::to_string(i % workers_count)); - double* payload = new double(comp_size); + auto* payload = new double(comp_size); try { XBT_INFO("Send a message to %s", mailbox->get_cname()); mailbox->put(payload, comm_size, 10.0); @@ -54,7 +53,7 @@ static void master(int argc, char* argv[]) for (int i = 0; i < workers_count; i++) { /* - Eventually tell all the workers to stop by sending a "finalize" task */ mailbox = simgrid::s4u::Mailbox::by_name(std::string("worker-") + std::to_string(i)); - double* payload = new double(-1.0); + auto* payload = new double(-1.0); try { mailbox->put(payload, 0, 1.0); } catch (const simgrid::TimeoutException&) { @@ -69,15 +68,15 @@ static void master(int argc, char* argv[]) XBT_INFO("Goodbye now!"); } -static void worker(int argc, char* argv[]) +static void worker(std::vector args) { - xbt_assert(argc == 2, "Expecting one parameter"); - long id = xbt_str_parse_int(argv[1], "Invalid argument %s"); + xbt_assert(args.size() == 2, "Expecting one parameter"); + long id = std::stol(args[1]); simgrid::s4u::Mailbox* mailbox = simgrid::s4u::Mailbox::by_name(std::string("worker-") + std::to_string(id)); while (true) { try { XBT_INFO("Waiting a message on %s", mailbox->get_cname()); - const double* payload = static_cast(mailbox->get()); + const auto* payload = static_cast(mailbox->get()); xbt_assert(payload != nullptr, "mailbox->get() failed"); double comp_size = *payload; delete payload;