Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Modify object property in kernel mode.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Tue, 3 Mar 2020 21:31:25 +0000 (22:31 +0100)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Wed, 4 Mar 2020 12:40:37 +0000 (13:40 +0100)
include/simgrid/plugins/file_system.h
src/plugins/file_system/s4u_FileSystem.cpp

index 6c92f19..31e356e 100644 (file)
@@ -171,8 +171,8 @@ public:
   }
   sg_size_t get_size() const { return size_; }
   sg_size_t get_used_size() const { return used_size_; }
-  void decr_used_size(sg_size_t size) { used_size_ -= size; }
-  void incr_used_size(sg_size_t size) { used_size_ += size; }
+  void decr_used_size(sg_size_t size);
+  void incr_used_size(sg_size_t size);
 };
 
 class XBT_PUBLIC FileSystemStorageExt {
@@ -189,8 +189,8 @@ public:
   std::map<std::string, sg_size_t>* get_content() { return content_.get(); }
   sg_size_t get_size() { return size_; }
   sg_size_t get_used_size() { return used_size_; }
-  void decr_used_size(sg_size_t size) { used_size_ -= size; }
-  void incr_used_size(sg_size_t size) { used_size_ += size; }
+  void decr_used_size(sg_size_t size);
+  void incr_used_size(sg_size_t size);
 };
 
 class XBT_PUBLIC FileDescriptorHostExt {
index e6a7b28..65f66c0 100644 (file)
@@ -551,6 +551,26 @@ std::map<std::string, sg_size_t>* FileSystemStorageExt::parse_content(const std:
   delete fs;
   return parse_content;
 }
+
+void FileSystemStorageExt::decr_used_size(sg_size_t size)
+{
+  simgrid::kernel::actor::simcall([this, size] { used_size_ -= size; });
+}
+
+void FileSystemStorageExt::incr_used_size(sg_size_t size)
+{
+  simgrid::kernel::actor::simcall([this, size] { used_size_ += size; });
+}
+
+void FileSystemDiskExt::decr_used_size(sg_size_t size)
+{
+  simgrid::kernel::actor::simcall([this, size] { used_size_ -= size; });
+}
+
+void FileSystemDiskExt::incr_used_size(sg_size_t size)
+{
+  simgrid::kernel::actor::simcall([this, size] { used_size_ += size; });
+}
 }
 }