Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix the liveness tests when the reforks are compiled in but not activated
[simgrid.git] / src / mc / remote / AppSide.hpp
index beeb920..8d8a3cf 100644 (file)
@@ -1,6 +1,6 @@
 /* mc::remote::AppSide: the Application-side of the channel                 */
 
-/* Copyright (c) 2015-2022. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2015-2023. The SimGrid Team. All rights reserved.          */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
@@ -12,8 +12,7 @@
 
 #include <memory>
 
-namespace simgrid {
-namespace mc {
+namespace simgrid::mc {
 
 /** Model-checked-side of the communication protocol
  *
@@ -23,23 +22,26 @@ class XBT_PUBLIC AppSide {
 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 INITIAL_ADDRESSES */
 
 public:
   AppSide();
   explicit AppSide(int fd) : channel_(fd) {}
-  void handle_messages() const;
+  void handle_messages();
 
 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_actor_enabled(const s_mc_message_actor_enabled_t* msg) const;
   void handle_finalize(const s_mc_message_int_t* msg) const;
+  void handle_initial_addresses();
+  void handle_actors_status() const;
+  void handle_actors_maxpid() const;
 
 public:
   Channel const& get_channel() const { return channel_; }
   Channel& get_channel() { return channel_; }
-  XBT_ATTRIB_NORETURN void main_loop() const;
-  void report_assertion_failure() const;
+  XBT_ATTRIB_NORETURN void main_loop();
+  void report_assertion_failure();
   void ignore_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;
@@ -50,10 +52,9 @@ public:
 
   // Singleton :/
   // TODO, remove the singleton antipattern.
-  static AppSide* initialize(xbt_dynar_t actors_addr);
+  static AppSide* initialize();
   static AppSide* get() { return instance_.get(); }
 };
-} // namespace mc
-} // namespace simgrid
+} // namespace simgrid::mc
 
 #endif