Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix the liveness tests by ignoring the Comm ID memory that breaks the state equality...
[simgrid.git] / src / mc / remote / AppSide.hpp
index d4e68aab428ebab1baac2942afe516e41b0253af..57189e65f039ad4af8e8c44597b783c44cded526 100644 (file)
@@ -23,6 +23,7 @@ private:
   Channel channel_;
   static std::unique_ptr<AppSide> instance_;
   bool need_memory_info_ = false; /* by default we don't send memory info, unless we got a NEED_MEMINFO */
+  std::unordered_map<int, int> child_statuses_;
 
 public:
   AppSide();
@@ -33,6 +34,8 @@ private:
   void handle_deadlock_check(const s_mc_message_t* msg) const;
   void handle_simcall_execute(const s_mc_message_simcall_execute_t* message) const;
   void handle_finalize(const s_mc_message_int_t* msg) const;
+  void handle_fork(const s_mc_message_fork_t* msg);
+  void handle_wait_child(const s_mc_message_int_t* msg);
   void handle_need_meminfo();
   void handle_actors_status() const;
   void handle_actors_maxpid() const;
@@ -43,6 +46,7 @@ public:
   XBT_ATTRIB_NORETURN void main_loop();
   void report_assertion_failure();
   void ignore_memory(void* addr, std::size_t size) const;
+  void unignore_memory(void* addr, std::size_t size) const;
   void ignore_heap(void* addr, std::size_t size) const;
   void unignore_heap(void* addr, std::size_t size) const;
   void declare_symbol(const char* name, int* value) const;
@@ -50,10 +54,8 @@ public:
   void declare_stack(void* stack, size_t size, ucontext_t* context) const;
 #endif
 
-  // Singleton :/
   // TODO, remove the singleton antipattern.
-  static AppSide* initialize();
-  static AppSide* get() { return instance_.get(); }
+  static AppSide* get();
 };
 } // namespace simgrid::mc