/********************************* MSG **************************************/
+static void _sg_cfg_cb_msg_multiple_backtraces(const char *name, int pos)
+{
+ msg_global->multiple_backtraces = xbt_cfg_get_boolean(_sg_cfg_set, name);
+}
+
/**
* \ingroup msg_simulation
* \brief Initialize MSG with less verifications
xbt_getpid = MSG_process_self_PID;
if (!msg_global) {
- SIMIX_global_init(argc, argv);
-
msg_global = xbt_new0(s_MSG_Global_t, 1);
+ xbt_cfg_register(&_sg_cfg_set, "msg/multiple_backtraces",
+ "Keep the severals backtraces",
+ xbt_cfgelm_boolean, 1, 1, _sg_cfg_cb_msg_multiple_backtraces, NULL);
+ xbt_cfg_setdefault_boolean(_sg_cfg_set, "msg/multiple_backtraces", "no");
+
+ SIMIX_global_init(argc, argv);
+
#ifdef MSG_USE_DEPRECATED
msg_global->max_channel = 0;
#endif
sg_platf_postparse_add_cb(MSG_post_create_environment);
}
-
+
if(MC_is_active()){
/* Ignore total amount of messages sent during the simulation for heap comparison */
MC_ignore_heap(&(msg_global->sent_msg), sizeof(msg_global->sent_msg));
XBT_DEBUG("ADD MSG LEVELS");
MSG_HOST_LEVEL = xbt_lib_add_level(host_lib, (void_f_pvoid_t) __MSG_host_priv_free);
MSG_STORAGE_LEVEL = xbt_lib_add_level(storage_lib, (void_f_pvoid_t) __MSG_storage_destroy);
-
+ MSG_FILE_LEVEL = xbt_lib_add_level(file_lib, (void_f_pvoid_t) __MSG_file_destroy);
if(sg_cfg_get_boolean("clean_atexit")) atexit(MSG_exit);
}