X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/dceed88b84f4c8dccf94f8031cc9ba635eaf75da..39c935d6d5ee86d153f6f7e6a10d723ae7c57f6f:/teshsuite/s4u/pid/pid.cpp diff --git a/teshsuite/s4u/pid/pid.cpp b/teshsuite/s4u/pid/pid.cpp index 2624b07990..7c2c7c082e 100644 --- a/teshsuite/s4u/pid/pid.cpp +++ b/teshsuite/s4u/pid/pid.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2009-2017. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2009-2021. 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. */ @@ -7,53 +7,43 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_test, "Messages specific for this msg example"); -static int my_onexit(smx_process_exit_status_t status, int* pid) -{ - XBT_INFO("Process \"%d\" killed.", *pid); - return 0; -} - static void sendpid() { - simgrid::s4u::MailboxPtr mailbox = simgrid::s4u::Mailbox::byName("mailbox"); - int pid = simgrid::s4u::this_actor::pid(); - double comm_size = 100000; - simgrid::s4u::this_actor::onExit((int_f_pvoid_pvoid_t)my_onexit, &pid); + simgrid::s4u::Mailbox* mailbox = simgrid::s4u::Mailbox::by_name("mailbox"); + aid_t pid = simgrid::s4u::this_actor::get_pid(); + long comm_size = 100000; + simgrid::s4u::this_actor::on_exit([pid](bool /*failed*/) { XBT_INFO("Process \"%ld\" killed.", pid); }); - XBT_INFO("Sending pid of \"%d\".", pid); + XBT_INFO("Sending pid of \"%ld\".", pid); mailbox->put(&pid, comm_size); - XBT_INFO("Send of pid \"%d\" done.", pid); + XBT_INFO("Send of pid \"%ld\" done.", pid); simgrid::s4u::this_actor::suspend(); } static void killall() { - simgrid::s4u::MailboxPtr mailbox = simgrid::s4u::Mailbox::byName("mailbox"); + simgrid::s4u::Mailbox* mailbox = simgrid::s4u::Mailbox::by_name("mailbox"); for (int i = 0; i < 3; i++) { - int* pid = static_cast(mailbox->get()); - XBT_INFO("Killing process \"%d\".", *pid); - simgrid::s4u::Actor::byPid(*pid)->kill(); + const auto* pid = mailbox->get(); + XBT_INFO("Killing process \"%ld\".", *pid); + simgrid::s4u::Actor::by_pid(*pid)->kill(); } } int main(int argc, char* argv[]) { - simgrid::s4u::Engine* e = new simgrid::s4u::Engine(&argc, argv); - e->loadPlatform(argv[1]); + simgrid::s4u::Engine e(&argc, argv); + e.load_platform(argv[1]); - if (argc > 2) - simgrid::s4u::Actor::killAll(atoi(argv[2])); - else - simgrid::s4u::Actor::killAll(); + simgrid::s4u::Actor::kill_all(); - simgrid::s4u::Actor::createActor("sendpid", simgrid::s4u::Host::by_name("Tremblay"), sendpid); - simgrid::s4u::Actor::createActor("sendpid", simgrid::s4u::Host::by_name("Tremblay"), sendpid); - simgrid::s4u::Actor::createActor("sendpid", simgrid::s4u::Host::by_name("Tremblay"), sendpid); - simgrid::s4u::Actor::createActor("killall", simgrid::s4u::Host::by_name("Tremblay"), killall); + simgrid::s4u::Actor::create("sendpid", simgrid::s4u::Host::by_name("Tremblay"), sendpid); + simgrid::s4u::Actor::create("sendpid", simgrid::s4u::Host::by_name("Tremblay"), sendpid); + simgrid::s4u::Actor::create("sendpid", simgrid::s4u::Host::by_name("Tremblay"), sendpid); + simgrid::s4u::Actor::create("killall", simgrid::s4u::Host::by_name("Tremblay"), killall); - e->run(); + e.run(); - delete e; return 0; }