Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
MC protocol: rename INITIAL_ADDRESSES msg to NEED_MEMINFO
[simgrid.git] / src / mc / remote / AppSide.cpp
index 216227f..8813a4f 100644 (file)
@@ -64,16 +64,19 @@ AppSide* AppSide::initialize()
   instance_ = std::make_unique<simgrid::mc::AppSide>(fd);
 
   // Wait for the model-checker:
-  errno = 0;
+  if (getenv("MC_NEED_PTRACE") != nullptr) {
+    errno = 0;
 #if defined __linux__
-  ptrace(PTRACE_TRACEME, 0, nullptr, nullptr);
+    ptrace(PTRACE_TRACEME, 0, nullptr, nullptr);
 #elif defined BSD
-  ptrace(PT_TRACE_ME, 0, nullptr, 0);
+    ptrace(PT_TRACE_ME, 0, nullptr, 0);
 #else
-#error "no ptrace equivalent coded for this platform"
+    xbt_die("no ptrace equivalent coded for this platform, please don't use the liveness checker here.");
 #endif
-  xbt_assert(errno == 0 && raise(SIGSTOP) == 0, "Could not wait for the model-checker (errno = %d: %s)", errno,
-             strerror(errno));
+
+    xbt_assert(errno == 0 && raise(SIGSTOP) == 0, "Could not wait for the model-checker (errno = %d: %s)", errno,
+               strerror(errno));
+  }
 
   instance_->handle_messages();
   return instance_.get();
@@ -147,13 +150,13 @@ void AppSide::handle_finalize(const s_mc_message_int_t* msg) const
   if (terminate_asap)
     ::_Exit(0);
 }
-void AppSide::handle_initial_addresses()
+void AppSide::handle_need_meminfo()
 {
-  this->need_memory_info_                       = true;
-  s_mc_message_initial_addresses_reply_t answer = {};
-  answer.type                                   = MessageType::INITIAL_ADDRESSES_REPLY;
-  answer.mmalloc_default_mdp                    = mmalloc_get_current_heap();
-  xbt_assert(channel_.send(answer) == 0, "Could not send response with initial addresses.");
+  this->need_memory_info_                  = true;
+  s_mc_message_need_meminfo_reply_t answer = {};
+  answer.type                              = MessageType::NEED_MEMINFO_REPLY;
+  answer.mmalloc_default_mdp               = mmalloc_get_current_heap();
+  xbt_assert(channel_.send(answer) == 0, "Could not send response to the request for meminfo.");
 }
 void AppSide::handle_actors_status() const
 {
@@ -259,9 +262,9 @@ void AppSide::handle_messages()
         handle_finalize((s_mc_message_int_t*)message_buffer.data());
         break;
 
-      case MessageType::INITIAL_ADDRESSES:
-        assert_msg_size("INITIAL_ADDRESSES", s_mc_message_t);
-        handle_initial_addresses();
+      case MessageType::NEED_MEMINFO:
+        assert_msg_size("NEED_MEMINFO", s_mc_message_t);
+        handle_need_meminfo();
         break;
 
       case MessageType::ACTORS_STATUS: