Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
For File, we can change the default error handler by specifying MPI_FILE_NULL as...
[simgrid.git] / src / smpi / mpi / smpi_file.cpp
index 25fd3ec..b47984e 100644 (file)
@@ -19,6 +19,8 @@
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_io, smpi, "Logging specific to SMPI (RMA operations)");
 
+MPI_Errhandler SMPI_default_File_Errhandler = MPI_ERRORS_RETURN;
+
 namespace simgrid{
 namespace smpi{
 
@@ -28,6 +30,7 @@ namespace smpi{
     if (comm_->rank() == 0) {
       int size= comm_->size() + FP_SIZE;
       list_ = new char[size];
+      errhandler_= SMPI_default_File_Errhandler;
       memset(list_, 0, size);
       shared_file_pointer_ = new MPI_Offset();
       shared_mutex_ = s4u::Mutex::create();
@@ -244,5 +247,15 @@ namespace smpi{
   MPI_Comm File::comm(){
     return comm_;
   }
+
+  MPI_Errhandler File::errhandler(){
+    return errhandler_;
+  }
+
+  void File::set_errhandler(MPI_Errhandler errhandler){
+    errhandler_=errhandler;
+    if(errhandler_!= MPI_ERRHANDLER_NULL)
+      errhandler->ref();
+  }
 }
 }