Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Enforce "Rule-of-Three/Five".
[simgrid.git] / src / smpi / include / smpi_win.hpp
index ec89c1d..beee0b4 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010-2018. The SimGrid Team.
+/* Copyright (c) 2010-2019. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -27,15 +27,15 @@ class Win : public F2C, public Keyval {
   MPI_Info info_;
   MPI_Comm comm_;
   std::vector<MPI_Request> *requests_;
-  xbt_mutex_t mut_;
-  simgrid::s4u::Barrier* bar_;
+  s4u::MutexPtr mut_;
+  s4u::Barrier* bar_;
   MPI_Win* connected_wins_;
   char* name_;
   int opened_;
   MPI_Group group_;
   int count_; //for ordering the accs
-  xbt_mutex_t lock_mut_;
-  xbt_mutex_t atomic_mut_;
+  s4u::MutexPtr lock_mut_;
+  s4u::MutexPtr atomic_mut_;
   std::list<int> lockers_;
   int rank_; // to identify owner for barriers in MPI_COMM_WORLD
   int mode_; // exclusive or shared lock
@@ -48,6 +48,8 @@ public:
 
   Win(void *base, MPI_Aint size, int disp_unit, MPI_Info info, MPI_Comm comm, int allocated = 0, int dynamic = 0);
   Win(MPI_Info info, MPI_Comm comm) : Win(MPI_BOTTOM, 0, 1, info, comm, 0, 1) {};
+  Win(const Win&) = delete;
+  Win& operator=(const Win&) = delete;
   ~Win();
   int attach (void *base, MPI_Aint size);
   int detach (void *base);