Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[mc] Remove a ugly special case in LocationListEntry
[simgrid.git] / src / mc / simgrid_mc.cpp
index a923cdb..e0f6170 100644 (file)
@@ -45,6 +45,13 @@ static int do_child(int socket, char** argv)
 
 #ifdef __linux__
   // Make sure we do not outlive our parent:
+  sigset_t mask;
+  sigemptyset (&mask);
+  if (sigprocmask(SIG_SETMASK, &mask, nullptr) < 0) {
+    std::perror ("sigprocmask");
+    return SIMGRID_MC_EXIT_ERROR;
+  }
+
   if (prctl(PR_SET_PDEATHSIG, SIGHUP) != 0) {
     std::perror("simgrid-mc");
     return SIMGRID_MC_EXIT_ERROR;
@@ -92,7 +99,9 @@ static int do_parent(int socket, pid_t child)
     xbt_die("MC server already present");
   try {
     mc_mode = MC_MODE_SERVER;
-    mc_model_checker = new simgrid::mc::ModelChecker(child, socket);
+    std::unique_ptr<simgrid::mc::Process> process(new simgrid::mc::Process(child, socket));
+    process->privatized(sg_cfg_get_boolean("smpi/privatize_global_variables"));
+    mc_model_checker = new simgrid::mc::ModelChecker(std::move(process));
     mc_model_checker->start();
     int res = 0;
     if (_sg_mc_comms_determinism || _sg_mc_send_determinism)