Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Set waitpid() for model-checked flags according to platform.
[simgrid.git] / src / mc / ModelChecker.cpp
index 2023655..6aff9c4 100644 (file)
@@ -40,6 +40,12 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_ModelChecker, mc, "ModelChecker");
 
 using simgrid::mc::remote;
 
+#ifdef __linux__
+# define WAITPID_CHECKED_FLAGS __WALL
+#else
+# define WAITPID_CHECKED_FLAGS 0
+#endif
+
 // Hardcoded index for now:
 #define SOCKET_FD_INDEX 0
 #define SIGNAL_FD_INDEX 1
@@ -91,7 +97,7 @@ void ModelChecker::start()
   int status;
 
   // The model-checked process SIGSTOP itself to signal it's ready:
-  pid_t res = waitpid(pid, &status, __WALL);
+  pid_t res = waitpid(pid, &status, WAITPID_CHECKED_FLAGS);
   if (res < 0 || !WIFSTOPPED(status) || WSTOPSIG(status) != SIGSTOP)
     xbt_die("Could not wait model-checked process");
 
@@ -294,10 +300,10 @@ bool ModelChecker::handle_message(char* buffer, ssize_t size)
   return true;
 }
 
-/** Terminate the model-checker aplication */
+/** Terminate the model-checker application */
 void ModelChecker::exit(int status)
 {
-  // TODO, terminate the model checker politely instead of exiting rudel
+  // TODO, terminate the model checker politely instead of exiting rudely
   if (process().running())
     kill(process().pid(), SIGKILL);
   ::exit(status);