Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
cosmetics on some error messages
[simgrid.git] / src / simix / smx_global.c
index 7df250c..6de8bc3 100644 (file)
@@ -31,20 +31,26 @@ int _sg_do_verbose_exit = 1;
 static void _XBT_CALL inthandler(int ignored)
 {
   if ( _sg_do_verbose_exit ) {
-     XBT_INFO("CTRL-C pressed. Displaying status and bailing out");
+     XBT_INFO("CTRL-C pressed. The current status will be displayed before exit (disable that behavior with option 'verbose-exit').");
      SIMIX_display_process_status();
   }
   else {
-     XBT_INFO("CTRL-C pressed. bailing out without displaying because verbose-exit is disabled");
+     XBT_INFO("CTRL-C pressed, exiting. Hiding the current process status since 'verbose-exit' is set to false.");
   }
   exit(1);
 }
 
+#ifndef WIN32
 static void _XBT_CALL segvhandler(int signum, siginfo_t *siginfo, void *context)
 {
   if (siginfo->si_signo == SIGSEGV && siginfo->si_code == SEGV_ACCERR) {
     fprintf(stderr,
-            "Access violation detected. This can result from a stack overflow.\n"
+            "Access violation detected.\n"
+            "This can result from a programming error in your code or, although less likely,\n"
+            "from a bug in SimGrid itself.  This can also be the sign of a bug in the OS or\n"
+            "in third-party libraries.  Failing hardware can sometimes generate such errors\n"
+            "too.\n"
+            "Finally, if nothing of the above applies, this can result from a stack overflow.\n"
             "Try to increase stack size with --cfg=contexts/stack_size (current size is %d KiB).\n",
             smx_context_stack_size / 1024);
     if (XBT_LOG_ISENABLED(simix_kernel, xbt_log_priority_debug)) {
@@ -98,6 +104,7 @@ static void install_segvhandler(void)
   }
 }
 
+#endif
 /********************************* SIMIX **************************************/
 
 XBT_INLINE double SIMIX_timer_next(void)
@@ -155,9 +162,10 @@ void SIMIX_global_init(int *argc, char **argv)
     /* Prepare to display some more info when dying on Ctrl-C pressing */
     signal(SIGINT, inthandler);
 
+#ifndef WIN32
     /* Install SEGV handler */
     install_segvhandler();
-
+#endif
     /* register a function to be called by SURF after the environment creation */
     sg_platf_init();
     sg_platf_postparse_add_cb(SIMIX_post_create_environment);
@@ -183,9 +191,9 @@ void SIMIX_global_init(int *argc, char **argv)
  *
  * This functions remove the memory used by SIMIX
  */
-int cleaned = 0;
 void SIMIX_clean(void)
 {
+  static int cleaned = 0;
 #ifdef TIME_BENCH_PER_SR
   smx_ctx_raw_new_sr();
 #endif
@@ -527,6 +535,10 @@ void SIMIX_display_process_status(void)
         action_description = "sleeping";
         break;
 
+      case SIMIX_ACTION_JOIN:
+        action_description = "joining";
+        break;
+
       case SIMIX_ACTION_SYNCHRO:
         action_description = "synchronization";
         break;