Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
save some hidden calls to Engine::get_instance
[simgrid.git] / teshsuite / s4u / host-on-off-recv / host-on-off-recv.cpp
index af1dda5..19de43d 100644 (file)
@@ -1,4 +1,4 @@
-/* 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
@@ -16,7 +16,7 @@ static void master()
   XBT_INFO("Master starting");
   simgrid::s4u::this_actor::sleep_for(0.5);
 
-  std::string* payload       = new std::string("COMM");
+  auto* payload              = new std::string("COMM");
   simgrid::s4u::CommPtr comm = mailbox->put_async(payload, 1E8);
 
   simgrid::s4u::this_actor::sleep_for(0.5);
@@ -35,15 +35,14 @@ static void master()
 
 static void worker()
 {
-  const std::string* payload     = nullptr;
   simgrid::s4u::Mailbox* mailbox = simgrid::s4u::Mailbox::by_name("comm");
 
   XBT_INFO("Worker receiving");
   try {
-    payload = static_cast<std::string*>(mailbox->get());
+    auto payload = mailbox->get_unique<std::string>();
+    XBT_DEBUG("Received message: %s", payload->c_str());
   } catch (const simgrid::HostFailureException&) {
     XBT_DEBUG("The host has been turned off, this was expected");
-    delete payload;
     return;
   }
 
@@ -57,8 +56,8 @@ int main(int argc, char* argv[])
 
   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();