X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/6ade1c748396ae71562fd718e8409de61ab00148..bfd4a01db7f2f21e67c9ce03d32eb47a9601f759:/docs/source/tuto_s4u/master-workers-lab4.cpp diff --git a/docs/source/tuto_s4u/master-workers-lab4.cpp b/docs/source/tuto_s4u/master-workers-lab4.cpp index c2c8f4d3b2..74195e05a6 100644 --- a/docs/source/tuto_s4u/master-workers-lab4.cpp +++ b/docs/source/tuto_s4u/master-workers-lab4.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2010-2020. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2010-2023. The SimGrid Team. All rights reserved. */ /* 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. */ @@ -18,12 +18,13 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_app_masterworker, "Messages specific for this e static void worker(std::string category) { - const std::string mailbox_name = std::string("worker-") + std::to_string(simgrid::s4u::this_actor::get_pid()); - simgrid::s4u::Mailbox* mailbox = simgrid::s4u::Mailbox::by_name(mailbox_name); + const std::string mailbox_name = "worker-" + std::to_string(simgrid::s4u::this_actor::get_pid()); + simgrid::s4u::Mailbox* mailbox = simgrid::s4u::Mailbox::by_name(mailbox_name); while (true) { // Master forcefully kills the workers by the end of the simulation - auto msg = mailbox->get_unique(); + double* msg = mailbox->get(); double compute_cost = *msg; + delete msg; // simgrid::s4u::this_actor::exec_init(compute_cost)->set_tracing_category(category)->wait(); /* Long form:*/ @@ -44,22 +45,21 @@ static void master(std::vector args) std::vector actors; simgrid::s4u::Engine* e = simgrid::s4u::Engine::get_instance(); - std::string my_name = std::string("master-") + std::to_string(simgrid::s4u::this_actor::get_pid()); + std::string my_name = "master-" + std::to_string(simgrid::s4u::this_actor::get_pid()); XBT_INFO("Asked to run for %.1f seconds", simulation_duration); for (auto* host : e->get_all_hosts()) { - simgrid::s4u::ActorPtr act = - simgrid::s4u::Actor::create(std::string("Worker-") + host->get_name(), host, worker, my_name); + simgrid::s4u::ActorPtr act = simgrid::s4u::Actor::create("Worker-" + host->get_name(), host, worker, my_name); actors.push_back(act); } int task_id = 0; - while (e->get_clock() < simulation_duration) { /* For each task: */ + while (simgrid::s4u::Engine::get_clock() < simulation_duration) { /* For each task: */ /* - Select a worker in a round-robin way */ - aid_t worker_pid = actors.at(task_id % actors.size())->get_pid(); - std::string mailbox_name = std::string("worker-") + std::to_string(worker_pid); - simgrid::s4u::Mailbox* mailbox = simgrid::s4u::Mailbox::by_name(mailbox_name); + aid_t worker_pid = actors.at(task_id % actors.size())->get_pid(); + std::string mailbox_name = "worker-" + std::to_string(worker_pid); + simgrid::s4u::Mailbox* mailbox = simgrid::s4u::Mailbox::by_name(mailbox_name); /* - Send the computation cost to that worker */ XBT_DEBUG("Sending task %d to mailbox '%s'", task_id, mailbox->get_cname());