-/* Copyright (c) 2010-2020. The SimGrid Team.
+/* Copyright (c) 2010-2021. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
static void worker()
{
- const std::string* payload;
simgrid::s4u::Mailbox* mailbox = simgrid::s4u::Mailbox::by_name("jupi");
- while (1) {
+ while (true) {
+ std::unique_ptr<std::string> payload;
try {
- payload = static_cast<std::string*>(mailbox->get());
+ payload = mailbox->get_unique<std::string>();
} catch (const simgrid::HostFailureException&) {
XBT_DEBUG("The host has been turned off, this was expected");
return;
}
if (*payload == "finalize") {
- delete payload;
break;
}
simgrid::s4u::this_actor::execute(5E7);
XBT_INFO("Task \"%s\" done", payload->c_str());
- delete payload;
}
XBT_INFO("I'm done. See you!");
}
simgrid::s4u::Mailbox* mailbox = simgrid::s4u::Mailbox::by_name("jupi");
simgrid::s4u::Host* jupiter = simgrid::s4u::Host::by_name("Jupiter");
- std::string* payload = new std::string("task on");
+ auto* payload = new std::string("task on");
XBT_INFO("Sending \"task on\"");
mailbox->put_async(payload, 1E6)->wait_for(1);
e.load_platform(argv[1]);
- simgrid::s4u::Actor::create("master", simgrid::s4u::Host::by_name("Tremblay"), master);
- simgrid::s4u::Actor::create("worker", simgrid::s4u::Host::by_name("Jupiter"), worker);
+ simgrid::s4u::Actor::create("master", e.host_by_name("Tremblay"), master);
+ simgrid::s4u::Actor::create("worker", e.host_by_name("Jupiter"), worker);
e.run();
- XBT_INFO("Simulation time %g", e.get_clock());
+ XBT_INFO("Simulation time %g", simgrid::s4u::Engine::get_clock());
return 0;
}