Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of github.com:simgrid/simgrid into dev_10
[simgrid.git] / src / mc / remote / AppSide.cpp
index 486a9c79fdae5e6324471a6f92087ba449909b84..9a72d04aaba83628ba8bcf82f1fdfbe70c353181 100644 (file)
@@ -10,6 +10,7 @@
 #include <cerrno>
 #include <cstdlib>
 #include <cstring>
+#include <memory>
 #include <sys/ptrace.h>
 #include <sys/socket.h>
 #include <sys/types.h>
@@ -48,7 +49,7 @@ AppSide* AppSide::initialize()
   xbt_assert(type == SOCK_SEQPACKET, "Unexpected socket type %i", type);
   XBT_DEBUG("Model-checked application found expected socket type");
 
-  instance_.reset(new simgrid::mc::AppSide(fd));
+  instance_ = std::make_unique<simgrid::mc::AppSide>(fd);
 
   // Wait for the model-checker:
   errno = 0;
@@ -106,17 +107,17 @@ void AppSide::handle_actor_enabled(const s_mc_message_actor_enabled_t* msg) cons
   xbt_assert(received_size == sizeof(_type_), "Unexpected size for " _name_ " (%zd != %zu)", received_size,            \
              sizeof(_type_))
 
-void AppSide::handle_messages()
+void AppSide::handle_messages() const
 {
   while (true) {
     XBT_DEBUG("Waiting messages from model-checker");
 
-    char message_buffer[MC_MESSAGE_LENGTH];
-    ssize_t received_size = channel_.receive(&message_buffer, sizeof(message_buffer));
+    std::array<char, MC_MESSAGE_LENGTH> message_buffer;
+    ssize_t received_size = channel_.receive(message_buffer.data(), message_buffer.size());
 
     xbt_assert(received_size >= 0, "Could not receive commands from the model-checker");
 
-    const s_mc_message_t* message = (s_mc_message_t*)message_buffer;
+    const s_mc_message_t* message = (s_mc_message_t*)message_buffer.data();
     switch (message->type) {
       case MC_MESSAGE_DEADLOCK_CHECK:
         assert_msg_size("DEADLOCK_CHECK", s_mc_message_t);
@@ -130,12 +131,12 @@ void AppSide::handle_messages()
 
       case MC_MESSAGE_SIMCALL_HANDLE:
         assert_msg_size("SIMCALL_HANDLE", s_mc_message_simcall_handle_t);
-        handle_simcall((s_mc_message_simcall_handle_t*)message_buffer);
+        handle_simcall((s_mc_message_simcall_handle_t*)message_buffer.data());
         break;
 
       case MC_MESSAGE_ACTOR_ENABLED:
         assert_msg_size("ACTOR_ENABLED", s_mc_message_actor_enabled_t);
-        handle_actor_enabled((s_mc_message_actor_enabled_t*)message_buffer);
+        handle_actor_enabled((s_mc_message_actor_enabled_t*)message_buffer.data());
         break;
 
       default:
@@ -145,7 +146,7 @@ void AppSide::handle_messages()
   }
 }
 
-void AppSide::main_loop()
+void AppSide::main_loop() const
 {
   while (true) {
     simgrid::mc::wait_for_requests();
@@ -154,7 +155,7 @@ void AppSide::main_loop()
   }
 }
 
-void AppSide::report_assertion_failure()
+void AppSide::report_assertion_failure() const
 {
   if (channel_.send(MC_MESSAGE_ASSERTION_FAILED))
     xbt_die("Could not send assertion to model-checker");