-/* Copyright (c) 2007-2012. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2007-2013. The SimGrid Team.
+ * All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
SIMIX_HOST_LEVEL = xbt_lib_add_level(host_lib,SIMIX_host_destroy);
- if(sg_cfg_get_boolean("clean_atexit")) atexit(SIMIX_clean);
+ if (sg_cfg_get_boolean("clean_atexit"))
+ atexit(SIMIX_clean);
+
+ if (_sg_cfg_exit_asap)
+ exit(0);
}
/**
*/
static void SIMIX_clean(void)
{
+#ifdef HAVE_TRACING
+ TRACE_end();
+#endif
#ifdef TIME_BENCH_PER_SR
smx_ctx_raw_new_sr();
#endif
#ifdef TIME_BENCH_AMDAHL
xbt_os_cputimer_stop(simix_global->timer_seq);
- XBT_INFO("Amdhal timing informations. Sequential time: %lf; Parallel time: %lf",
+ XBT_INFO("Amdahl timing informations. Sequential time: %lf; Parallel time: %lf",
xbt_os_timer_elapsed(simix_global->timer_seq),
xbt_os_timer_elapsed(simix_global->timer_par));
xbt_os_timer_free(simix_global->timer_seq);
}
/* Autorestart all process */
- char *hostname = NULL;
- xbt_dynar_foreach(host_that_restart,iter,hostname) {
- XBT_INFO("Restart processes on host: %s",hostname);
- SIMIX_host_autorestart(SIMIX_host_get_by_name(hostname));
+ if(host_that_restart) {
+ char *hostname = NULL;
+ xbt_dynar_foreach(host_that_restart,iter,hostname) {
+ XBT_INFO("Restart processes on host: %s",hostname);
+ SIMIX_host_autorestart(SIMIX_host_get_by_name(hostname));
+ }
+ xbt_dynar_reset(host_that_restart);
}
- xbt_dynar_reset(host_that_restart);
/* Clean processes to destroy */
SIMIX_process_empty_trash();
TRACE_end();
#endif
- XBT_WARN("Oops ! Deadlock or code not perfectly clean.");
+ XBT_CRITICAL("Oops ! Deadlock or code not perfectly clean.");
SIMIX_display_process_status();
xbt_abort();
}