Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Use Mailbox::get_unique<>(), and save a few delete.
[simgrid.git] / examples / s4u / trace-categories / s4u-trace-categories.cpp
index 27453a5..5db0bc5 100644 (file)
@@ -15,13 +15,12 @@ struct Task {
   std::string name;
   std::string category;
   double flops;
-  double bytes;
+  uint64_t bytes;
 };
 
 static void master()
 {
-  auto mbox                     = simgrid::s4u::Mailbox::by_name("master_mailbox");
-
+  auto mbox = simgrid::s4u::Mailbox::by_name("master_mailbox");
   for (int i = 0; i < 10; i++) {
     Task task;
     if (i % 2)
@@ -32,7 +31,6 @@ static void master()
       task = {"task_data", "data", 10, 10000000};
     mbox->put(new Task(task), task.bytes);
   }
-
   Task finalize = {"finalize", "finalize", 0, 1000};
   mbox->put(new Task(finalize), finalize.bytes);
 }
@@ -41,9 +39,8 @@ static void worker()
 {
   auto mbox = simgrid::s4u::Mailbox::by_name("master_mailbox");
   while (true) {
-    const auto* task = static_cast<Task*>(mbox->get());
+    auto task = mbox->get_unique<Task>();
     if (task->name == "finalize") {
-      delete task;
       break;
     }
     // creating task and setting its category
@@ -51,7 +48,6 @@ static void worker()
         ->set_name(task->name)
         ->set_tracing_category(task->category)
         ->wait();
-    delete task;
   }
 }