Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[SMPI] Replay: C++-ify barrier action
authorChristian Heinrich <franz-christian.heinrich@inria.fr>
Tue, 27 Mar 2018 13:06:55 +0000 (15:06 +0200)
committerChristian Heinrich <franz-christian.heinrich@inria.fr>
Wed, 28 Mar 2018 15:33:53 +0000 (17:33 +0200)
src/smpi/internals/smpi_replay.cpp

index f5cd689..d89a3fa 100644 (file)
@@ -307,19 +307,18 @@ public:
   }
 };
 
-} // Replay Namespace
-
-static void action_barrier(simgrid::xbt::ReplayAction& action)
-{
-  double clock = smpi_process()->simulated_elapsed();
-  int my_proc_id = Actor::self()->getPid();
-  TRACE_smpi_comm_in(my_proc_id, __FUNCTION__, new simgrid::instr::NoOpTIData("barrier"));
-
-  Colls::barrier(MPI_COMM_WORLD);
+class BarrierAction : public ReplayAction<ActionArgParser> {
+public:
+  BarrierAction() : ReplayAction("barrier") {}
+  void kernel(simgrid::xbt::ReplayAction& action) override
+  {
+    TRACE_smpi_comm_in(my_proc_id, __FUNCTION__, new simgrid::instr::NoOpTIData("barrier"));
+    Colls::barrier(MPI_COMM_WORLD);
+    TRACE_smpi_comm_out(my_proc_id);
+  }
+};
 
-  TRACE_smpi_comm_out(my_proc_id);
-  log_timed_action (action, clock);
-}
+} // Replay Namespace
 
 static void action_bcast(simgrid::xbt::ReplayAction& action)
 {