Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
MailboxPtr looks like a smart pointer, but it's not. Kill it.
[simgrid.git] / docs / source / tuto_s4u / master-workers-lab3.cpp
index f31f381..2f439be 100644 (file)
@@ -19,12 +19,11 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_app_masterworker, "Messages specific for this e
 static void worker()
 {
   const std::string mailbox_name   = std::string("worker-") + std::to_string(simgrid::s4u::this_actor::get_pid());
-  simgrid::s4u::MailboxPtr mailbox = simgrid::s4u::Mailbox::by_name(mailbox_name);
+  simgrid::s4u::Mailbox* mailbox   = simgrid::s4u::Mailbox::by_name(mailbox_name);
 
-  double compute_cost;
   while (true) { // Master forcefully kills the workers by the end of the simulation
     double* msg  = static_cast<double*>(mailbox->get());
-    compute_cost = *msg;
+    double compute_cost = *msg;
     delete msg;
 
     simgrid::s4u::this_actor::execute(compute_cost);
@@ -55,7 +54,7 @@ static void master(std::vector<std::string> args)
     /* - Select a worker in a round-robin way */
     aid_t worker_pid                 = actors.at(task_id % actors.size())->get_pid();
     std::string mailbox_name         = std::string("worker-") + std::to_string(worker_pid);
-    simgrid::s4u::MailboxPtr mailbox = simgrid::s4u::Mailbox::by_name(mailbox_name);
+    simgrid::s4u::Mailbox* mailbox   = simgrid::s4u::Mailbox::by_name(mailbox_name);
 
     /* - Send the computation cost to that worker */
     if (task_id % 100 == 0)