Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
need to change here as well
[simgrid.git] / src / smpi / mpi / smpi_op.cpp
index 67d6ae8..b710929 100644 (file)
@@ -1,9 +1,8 @@
-/* Copyright (c) 2009-2017. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2009-2018. The SimGrid Team. All rights reserved.          */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include "private.h"
 #include "private.hpp"
 #include "smpi_datatype.hpp"
 #include "smpi_op.hpp"
@@ -78,8 +77,8 @@ APPLY_OP_LOOP(MPI_DOUBLE, double,op)\
 APPLY_OP_LOOP(MPI_LONG_DOUBLE, long double,op)\
 APPLY_OP_LOOP(MPI_REAL, float,op)\
 APPLY_OP_LOOP(MPI_REAL4, float,op)\
-APPLY_OP_LOOP(MPI_REAL8, float,op)\
-APPLY_OP_LOOP(MPI_REAL16, double,op)
+APPLY_OP_LOOP(MPI_REAL8, double,op)\
+APPLY_OP_LOOP(MPI_REAL16, long double,op)
 
 #define APPLY_COMPLEX_OP_LOOP(op)\
 APPLY_OP_LOOP(MPI_C_FLOAT_COMPLEX, float _Complex,op)\
@@ -241,9 +240,10 @@ void Op::set_fortran_op()
 
 void Op::apply(void *invec, void *inoutvec, int *len, MPI_Datatype datatype)
 {
-  if(smpi_privatize_global_variables == SMPI_PRIVATIZE_MMAP){//we need to switch as the called function may silently touch global variables
+  if (smpi_privatize_global_variables == SmpiPrivStrategies::MMAP) {
+    // we need to switch as the called function may silently touch global variables
     XBT_DEBUG("Applying operation, switch to the right data frame ");
-    smpi_switch_data_segment(smpi_process()->index());
+    smpi_switch_data_segment(simgrid::s4u::Actor::self());
   }
 
   if (not smpi_process()->replaying() && *len > 0) {