Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid
authorMartin Quinson <martin.quinson@loria.fr>
Sat, 14 Nov 2015 23:36:02 +0000 (00:36 +0100)
committerMartin Quinson <martin.quinson@loria.fr>
Sat, 14 Nov 2015 23:36:02 +0000 (00:36 +0100)
1  2 
src/simix/smx_global.c

diff --combined src/simix/smx_global.c
@@@ -5,6 -5,7 +5,7 @@@
   * under the terms of the license (GNU LGPL) which comes with this package. */
  
  #include <stdlib.h>
+ #include <sys/ptrace.h>
  
  #include "smx_private.h"
  #include "xbt/heap.h"
@@@ -87,14 -88,6 +88,6 @@@ static void _XBT_CALL segvhandler(int s
      }
  #endif
    }
- #ifdef HAVE_MC
-   if (MC_is_active()) {
-     if (mc_stack) {
-       MC_dump_stack_safety(mc_stack);
-     }
-     MC_print_statistics(mc_stats);
-   }
- #endif
    raise(signum);
  }
  
@@@ -226,9 -219,14 +219,14 @@@ void SIMIX_global_init(int *argc, char 
    // We need to communicate  initialization of the different layers to the model-checker.
    if (mc_mode == MC_MODE_NONE) {
      if (getenv(MC_ENV_SOCKET_FD)) {
        mc_mode = MC_MODE_CLIENT;
        MC_client_init();
-       MC_client_hello();
+       // Waiting for the model-checker:
+       if (ptrace(PTRACE_TRACEME, 0, NULL, NULL) == -1 || raise(SIGSTOP) != 0)
+         xbt_die("Could not wait for the model-checker");
        MC_client_handle_messages();
      }
    }
@@@ -646,12 -644,12 +644,12 @@@ void SIMIX_display_process_status(void
          break;
        }
        XBT_INFO("Process %lu (%s@%s): waiting for %s synchro %p (%s) in state %d to finish",
 -          process->pid, process->name, sg_host_name(process->host),
 +          process->pid, process->name, sg_host_get_name(process->host),
            synchro_description, process->waiting_synchro,
            process->waiting_synchro->name, (int)process->waiting_synchro->state);
      }
      else {
 -      XBT_INFO("Process %lu (%s@%s)", process->pid, process->name, sg_host_name(process->host));
 +      XBT_INFO("Process %lu (%s@%s)", process->pid, process->name, sg_host_get_name(process->host));
      }
    }
  }