Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
In VisitedState class, get_remote_heap_bytes() from mc_api is called
authorEhsan Azimi <eazimi@ehsan.irisa.fr>
Wed, 18 Nov 2020 12:51:31 +0000 (13:51 +0100)
committerEhsan Azimi <eazimi@ehsan.irisa.fr>
Wed, 18 Nov 2020 12:51:31 +0000 (13:51 +0100)
src/mc/VisitedState.cpp
src/mc/mc_api.cpp
src/mc/mc_api.hpp
src/mc/mc_state.hpp

index 1f30705..fa49142 100644 (file)
 #include <sys/wait.h>
 #include <memory>
 #include <boost/range/algorithm.hpp>
+#include "src/mc/mc_api.hpp"
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_VisitedState, mc, "Logging specific to state equality detection mechanisms");
 
+using mcapi = simgrid::mc::mc_api;
+
 namespace simgrid {
 namespace mc {
 
 /** @brief Save the current state */
 VisitedState::VisitedState(unsigned long state_number) : num(state_number)
-{
-  simgrid::mc::RemoteSimulation* process = &(mc_model_checker->get_remote_simulation());
-  this->heap_bytes_used = mmalloc_get_bytes_used_remote(
-    process->get_heap()->heaplimit,
-    process->get_malloc_info());
-
-  this->actors_count = mc_model_checker->get_remote_simulation().actors().size();
-
+{  
+  this->heap_bytes_used = mcapi::get().get_remote_heap_bytes();
+  this->actors_count = mcapi::get().mc_get_remote_simulation().actors().size();
   this->system_state = std::make_shared<simgrid::mc::Snapshot>(state_number);
 }
 
@@ -58,7 +56,7 @@ VisitedStates::addVisitedState(unsigned long state_number, simgrid::mc::State* g
   if (compare_snapshots)
     for (auto i = range.first; i != range.second; ++i) {
       auto& visited_state = *i;
-      if (snapshot_equal(visited_state->system_state.get(), new_state->system_state.get())) {
+      if (mcapi::get().snapshot_equal(visited_state->system_state.get(), new_state->system_state.get())) {
         // The state has been visited:
 
         std::unique_ptr<simgrid::mc::VisitedState> old_state =
index 1e0a20d..b5cb13d 100644 (file)
@@ -207,6 +207,13 @@ void mc_api::copy_index_comm_pattern(const simgrid::mc::State* state) const
   MC_state_copy_index_communications_pattern((simgrid::mc::State*)state);
 }
 
+std::size_t mc_api::get_remote_heap_bytes() const
+{
+  RemoteSimulation& process = mc_model_checker->get_remote_simulation();
+  auto heap_bytes_used = mmalloc_get_bytes_used_remote(process.get_heap()->heaplimit, process.get_malloc_info());
+  return heap_bytes_used;
+}
+
 void mc_api::s_initialize() const
 {
   session->initialize();
index 676576e..8c9788f 100644 (file)
@@ -47,6 +47,9 @@ public:
   void copy_incomplete_comm_pattern(const simgrid::mc::State* state) const;
   void copy_index_comm_pattern(const simgrid::mc::State* state) const;
 
+  // REMOTE
+  std::size_t get_remote_heap_bytes() const;
+
   // MODEL_CHECKER FUNCTIONS
   ModelChecker* get_model_checker() const;
   void mc_inc_visited_states() const;
index 4448a09..f57f397 100644 (file)
@@ -90,8 +90,6 @@ public:
   void set_done() { this->state = InterleavingType::done; }
 };
 
-class PatternCommunication;
-
 /* A node in the exploration graph (kind-of) */
 class XBT_PRIVATE State {
 public: