]> AND Public Git Repository - simgrid.git/blobdiff - src/mc/ModelChecker.cpp
Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
flatifier.cpp: revert change from commit ba1c6dce93, and omit empty routes from output.
[simgrid.git] / src / mc / ModelChecker.cpp
index feab1c39ef84cc50c81f9b0194b4d34517a85daa..4da0d06f472ba5b6f2e3fbff16ea1f58948091bd 100644 (file)
@@ -15,6 +15,7 @@
 #include "xbt/system_error.hpp"
 
 #include <array>
+#include <csignal>
 #include <sys/ptrace.h>
 #include <sys/wait.h>
 
@@ -40,23 +41,25 @@ ModelChecker::ModelChecker(std::unique_ptr<RemoteProcess> remote_simulation, int
 
 void ModelChecker::start()
 {
-  checker_side_.start([](evutil_socket_t sig, short events, void* arg) {
-    auto mc = static_cast<simgrid::mc::ModelChecker*>(arg);
-    if (events == EV_READ) {
-      std::array<char, MC_MESSAGE_LENGTH> buffer;
-      ssize_t size = mc->checker_side_.get_channel().receive(buffer.data(), buffer.size(), false);
-      if (size == -1 && errno != EAGAIN)
-        throw simgrid::xbt::errno_error();
-
-      if (not mc->handle_message(buffer.data(), size))
-        mc->checker_side_.break_loop();
-    } else if (events == EV_SIGNAL) {
-      if (sig == SIGCHLD)
-        mc->handle_waitpid();
-    } else {
-      xbt_die("Unexpected event");
-    }
-  });
+  checker_side_.start(
+      [](evutil_socket_t sig, short events, void* arg) {
+        auto mc = static_cast<simgrid::mc::ModelChecker*>(arg);
+        if (events == EV_READ) {
+          std::array<char, MC_MESSAGE_LENGTH> buffer;
+          ssize_t size = mc->checker_side_.get_channel().receive(buffer.data(), buffer.size(), false);
+          if (size == -1 && errno != EAGAIN)
+            throw simgrid::xbt::errno_error();
+
+          if (not mc->handle_message(buffer.data(), size))
+            mc->checker_side_.break_loop();
+        } else if (events == EV_SIGNAL) {
+          if (sig == SIGCHLD)
+            mc->handle_waitpid();
+        } else {
+          xbt_die("Unexpected event");
+        }
+      },
+      this);
 
   XBT_DEBUG("Waiting for the model-checked process");
   int status;