From: Arnaud Giersch Date: Tue, 3 Mar 2020 21:31:25 +0000 (+0100) Subject: Modify object property in kernel mode. X-Git-Tag: v3.26~825 X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/1619d671d00fcdb03944d92befa10d5736333129 Modify object property in kernel mode. --- diff --git a/include/simgrid/plugins/file_system.h b/include/simgrid/plugins/file_system.h index 6c92f19916..31e356e4ba 100644 --- a/include/simgrid/plugins/file_system.h +++ b/include/simgrid/plugins/file_system.h @@ -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* 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 { diff --git a/src/plugins/file_system/s4u_FileSystem.cpp b/src/plugins/file_system/s4u_FileSystem.cpp index e6a7b28fe0..65f66c0838 100644 --- a/src/plugins/file_system/s4u_FileSystem.cpp +++ b/src/plugins/file_system/s4u_FileSystem.cpp @@ -551,6 +551,26 @@ std::map* 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; }); +} } }