Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Simcall again, when updating content in s4u::File::write_on_*.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Tue, 3 Mar 2020 22:21:24 +0000 (23:21 +0100)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Wed, 4 Mar 2020 12:40:37 +0000 (13:40 +0100)
src/plugins/file_system/s4u_FileSystem.cpp

index 0b0c426..588ea8e 100644 (file)
@@ -233,10 +233,12 @@ sg_size_t File::write_on_disk(sg_size_t size, bool write_inside)
     if (current_position_ > size_)
       size_ = current_position_;
   }
-  std::map<std::string, sg_size_t>* content = local_disk_->extension<FileSystemDiskExt>()->get_content();
+  kernel::actor::simcall([this] {
+    std::map<std::string, sg_size_t>* content = local_disk_->extension<FileSystemDiskExt>()->get_content();
 
-  content->erase(path_);
-  content->insert({path_, size_});
+    content->erase(path_);
+    content->insert({path_, size_});
+  });
 
   return write_size;
 }
@@ -271,10 +273,12 @@ sg_size_t File::write_on_storage(sg_size_t size, bool write_inside)
     if (current_position_ > size_)
       size_ = current_position_;
   }
-  std::map<std::string, sg_size_t>* content = local_storage_->extension<FileSystemStorageExt>()->get_content();
+  kernel::actor::simcall([this] {
+    std::map<std::string, sg_size_t>* content = local_storage_->extension<FileSystemStorageExt>()->get_content();
 
-  content->erase(path_);
-  content->insert({path_, size_});
+    content->erase(path_);
+    content->insert({path_, size_});
+  });
 
   return write_size;
 }