X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/86c4adf40ece7839a32205f2743c724a77138fd5..b0d49454a48ab619e18ba8c638c3ceda8e1d882e:/teshsuite/s4u/host-on-off-actors/host-on-off-actors.cpp diff --git a/teshsuite/s4u/host-on-off-actors/host-on-off-actors.cpp b/teshsuite/s4u/host-on-off-actors/host-on-off-actors.cpp index 07bc7850ff..f394ea42d9 100644 --- a/teshsuite/s4u/host-on-off-actors/host-on-off-actors.cpp +++ b/teshsuite/s4u/host-on-off-actors/host-on-off-actors.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2010-2020. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2010-2022. 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. */ @@ -10,45 +10,45 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_test, "Messages specific for this s4u example") int tasks_done = 0; -static void actor_daemon() +XBT_ATTRIB_NORETURN static void actor_daemon() { - simgrid::s4u::Host* host = simgrid::s4u::Host::current(); + const simgrid::s4u::Host* host = simgrid::s4u::Host::current(); XBT_INFO(" Start daemon on %s (%f)", host->get_cname(), host->get_speed()); for (;;) { XBT_INFO(" Execute daemon"); simgrid::s4u::this_actor::execute(host->get_speed()); tasks_done++; } - XBT_INFO(" daemon done. See you!"); + xbt_die(" daemon done. See you!"); } static void commTX() { XBT_INFO(" Start TX"); - simgrid::s4u::Mailbox::by_name("comm")->put_init(xbt_strdup("COMM"), 100000000)->detach(); + static std::string payload = "COMM"; + simgrid::s4u::Mailbox::by_name("comm")->put_init(&payload, 100000000)->detach(); // We should wait a bit (if not the process will end before the communication, hence an exception on the other side). try { simgrid::s4u::this_actor::sleep_for(30); } catch (const simgrid::HostFailureException&) { XBT_INFO("The host has died ... as expected."); } + XBT_INFO(" TX done"); } static void commRX() { - char* payload = nullptr; XBT_INFO(" Start RX"); try { - payload = static_cast(simgrid::s4u::Mailbox::by_name("comm")->get()); - XBT_INFO(" Receive message: %s", payload); + auto payload = simgrid::s4u::Mailbox::by_name("comm")->get(); + XBT_INFO(" Receive message: %s", payload->c_str()); } catch (const simgrid::HostFailureException&) { XBT_INFO(" Receive message: HOST_FAILURE"); } catch (const simgrid::NetworkFailureException&) { XBT_INFO(" Receive message: TRANSFER_FAILURE"); } - xbt_free(payload); XBT_INFO(" RX Done"); } @@ -123,7 +123,7 @@ static void test_launcher(int test_number) XBT_INFO("Test 6: Turn on Jupiter, assign a VM on Jupiter, launch an actor inside the VM, and turn off the node"); // Create VM0 - vm0 = new simgrid::s4u::VirtualMachine("vm0", jupiter, 1); + vm0 = jupiter->create_vm("vm0", 1); vm0->start(); daemon = simgrid::s4u::Actor::create("actor_daemon", vm0, actor_daemon); @@ -154,16 +154,15 @@ static void test_launcher(int test_number) int main(int argc, char* argv[]) { simgrid::s4u::Engine e(&argc, argv); - xbt_assert(argc == 3, "Usage: %s platform_file test_number\n\tExample: %s msg_platform.xml 1\n", argv[0], argv[0]); + xbt_assert(argc == 3, "Usage: %s platform_file test_number\n\tExample: %s platform.xml 1\n", argv[0], argv[0]); e.load_platform(argv[1]); - simgrid::s4u::Actor::create("test_launcher", simgrid::s4u::Host::by_name("Tremblay"), test_launcher, - std::stoi(argv[2])); + simgrid::s4u::Actor::create("test_launcher", e.host_by_name("Tremblay"), test_launcher, std::stoi(argv[2])); e.run(); - XBT_INFO("Simulation time %g", e.get_clock()); + XBT_INFO("Simulation time %g", simgrid::s4u::Engine::get_clock()); return 0; }