X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0bfafcab47ae9cd7856bd8d129404c33079d6afe..6051369d9427154f912e8affc417f20a26a0eb95:/examples/cpp/maestro-set/s4u-maestro-set.cpp diff --git a/examples/cpp/maestro-set/s4u-maestro-set.cpp b/examples/cpp/maestro-set/s4u-maestro-set.cpp index 3f5e8d822e..8b92c0b49b 100644 --- a/examples/cpp/maestro-set/s4u-maestro-set.cpp +++ b/examples/cpp/maestro-set/s4u-maestro-set.cpp @@ -1,16 +1,15 @@ -/* Copyright (c) 2007-2021. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2007-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. */ -/** @addtogroup S4U_examples +/** Switch the system thread hosting our maestro. * - * - maestro-set/maestro-set.cpp: Switch the system thread hosting our maestro. - * That's a very advanced example in which we move the maestro context to another system thread. - * Not many users need it (maybe only one, actually), but this example is also a regression test. + * That's a very advanced example in which we move the maestro context to another system thread. + * Not many users need it (maybe only one, actually), but this example is also a regression test. * - * This example is in C++ because we use C++11 threads to ensure that the feature is working as - * expected. You can still use that feature from a C code. + * This example is in C++ because we use C++11 threads to ensure that the feature is working as + * expected. You can still use that feature from a C code. */ #include "simgrid/Exception.hpp" @@ -21,6 +20,7 @@ #include XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_test, "Messages specific for this s4u example"); +namespace sg4 = simgrid::s4u; const std::thread::id root_id = std::this_thread::get_id(); @@ -41,22 +41,22 @@ static void sender() { ensure_root_tid(); auto* payload = new std::string("some message"); - simgrid::s4u::Mailbox::by_name("some mailbox")->put(payload, 10e8); + sg4::Mailbox::by_name("some mailbox")->put(payload, 10e8); } static void receiver() { ensure_other_tid(); - simgrid::s4u::Mailbox::by_name("some mailbox")->get_unique(); + sg4::Mailbox::by_name("some mailbox")->get_unique(); XBT_INFO("Task received"); } static void maestro(void* /* data */) { ensure_other_tid(); - simgrid::s4u::Actor::create("receiver", simgrid::s4u::Host::by_name("Jupiter"), receiver); - simgrid::s4u::Engine::get_instance()->run(); + sg4::Actor::create("receiver", sg4::Host::by_name("Jupiter"), receiver); + sg4::Engine::get_instance()->run(); } /** Main function */ @@ -64,21 +64,20 @@ int main(int argc, char* argv[]) { /* Specify which code should be executed by maestro on another thread, once this current thread is affected to an * actor by the subsequent sg_actor_attach(). This must be done before the creation of the engine. */ - SIMIX_set_maestro(maestro, nullptr); + simgrid_set_maestro(maestro, nullptr); - simgrid::s4u::Engine e(&argc, argv); + sg4::Engine e(&argc, argv); - if (argc != 2) { - XBT_CRITICAL("Usage: %s platform_file\n", argv[0]); - xbt_die("example: %s ../platforms/small_platform.xml\n", argv[0]); - } + xbt_assert(argc == 2, "Usage: %s platform_file\n" + "example: %s ../platforms/small_platform.xml\n", + argv[0], argv[0]); e.load_platform(argv[1]); - /* Become one of the simulated process (must be done after the platform creation, or the host won't exist). */ - sg_actor_attach("sender", nullptr, simgrid::s4u::Host::by_name("Tremblay"), nullptr); + /* Become one of the simulated actors (must be done after the platform creation, or the host won't exist). */ + sg_actor_attach("sender", nullptr, e.host_by_name("Tremblay"), nullptr); - ensure_root_tid(); // Only useful in this test: we ensure that simgrid is not broken and that this code is executed in + ensure_root_tid(); // Only useful in this test: we ensure that SimGrid is not broken and that this code is executed in // the correct system thread // Execute the sender code. The root thread was actually turned into a regular actor