#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;
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)