Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[mc] Fix privatisation support
[simgrid.git] / src / mc / Process.cpp
index ea58d75..3919f99 100644 (file)
@@ -214,11 +214,12 @@ Process::Process(pid_t pid, int sockfd) : AddressSpace(this)
   process->pid_ = pid;
   process->running_ = true;
   process->status_ = 0;
-  process->memory_map_ = get_memory_map(pid);
+  process->memory_map_ = simgrid::xbt::get_memory_map(pid);
   process->cache_flags = MC_PROCESS_CACHE_FLAG_NONE;
   process->init_memory_map_info();
   process->clear_refs_fd_ = -1;
   process->pagemap_fd_ = -1;
+  process->privatized_ = false;
 
   int fd = open_vm(process->pid_, O_RDWR);
   if (fd<0)
@@ -329,14 +330,14 @@ void Process::init_memory_map_info()
   if(regcomp(&res.so_re, SO_RE, 0) || regcomp(&res.version_re, VERSION_RE, 0))
     xbt_die(".so regexp did not compile");
 
-  std::vector<simgrid::mc::VmMap> const& maps = this->memory_map_;
+  std::vector<simgrid::xbt::VmMap> const& maps = this->memory_map_;
 
   const char* current_name = NULL;
 
   this->object_infos.resize(0);
 
   for (size_t i=0; i < maps.size(); i++) {
-    simgrid::mc::VmMap const& reg = maps[i];
+    simgrid::xbt::VmMap const& reg = maps[i];
     const char* pathname = maps[i].pathname.c_str();
 
     // Nothing to do
@@ -514,7 +515,7 @@ const void *Process::read_bytes(void* buffer, std::size_t size,
       this->find_object_info_rw((void*)address.address());
     // Segment overlap is not handled.
 #ifdef HAVE_SMPI
-    if (info.get() && info.get()->privatized()) {
+    if (info.get() && this->privatized(*info)) {
       if (process_index < 0)
         xbt_die("Missing process index");
       if (process_index >= (int) MC_smpi_process_count())