X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/8dc7a3bb3f1aaa0fabb9a2acc22c32483f662bab..e08ccfc85466d59704df52779255e26a2e4383af:/src/msg/global.c diff --git a/src/msg/global.c b/src/msg/global.c index 7109a43981..42dba8bfa2 100644 --- a/src/msg/global.c +++ b/src/msg/global.c @@ -12,6 +12,7 @@ #include "xbt/log.h" #include "xbt/virtu.h" #include "xbt/ex.h" /* ex_backtrace_display */ +#include "mailbox.h" XBT_LOG_NEW_DEFAULT_SUBCATEGORY(msg_kernel, msg, "Logging specific to MSG (kernel)"); @@ -38,13 +39,25 @@ void MSG_global_init_args(int *argc, char **argv) MSG_global_init(argc, argv); } + +XBT_LOG_EXTERNAL_CATEGORY(msg_gos); +XBT_LOG_EXTERNAL_CATEGORY(msg_kernel); +XBT_LOG_EXTERNAL_CATEGORY(msg_mailbox); +XBT_LOG_EXTERNAL_CATEGORY(msg_process); + /** \ingroup msg_simulation * \brief Initialize some MSG internal data. */ void MSG_global_init(int *argc, char **argv) { - xbt_getpid = &MSG_process_self_PID; + xbt_getpid = MSG_process_self_PID; if (!msg_global) { + /* Connect our log channels: that must be done manually under windows */ + XBT_LOG_CONNECT(msg_gos, msg); + XBT_LOG_CONNECT(msg_kernel, msg); + XBT_LOG_CONNECT(msg_mailbox, msg); + XBT_LOG_CONNECT(msg_process, msg); + SIMIX_global_init(argc, argv); msg_global = xbt_new0(s_MSG_Global_t, 1); @@ -54,6 +67,9 @@ void MSG_global_init(int *argc, char **argv) msg_global->max_channel = 0; msg_global->PID = 1; + /* initialization of the mailbox module */ + MSG_mailbox_mod_init(); + SIMIX_function_register_process_create(_MSG_process_create_from_SIMIX); SIMIX_function_register_process_cleanup(__MSG_process_cleanup); SIMIX_function_register_process_kill(_MSG_process_kill_from_SIMIX); @@ -232,8 +248,14 @@ MSG_error_t MSG_clean(void) free(msg_global); msg_global = NULL; + + /* cleanup all resources in the mailbox module */ + MSG_mailbox_mod_exit(); + SIMIX_clean(); + + return MSG_OK; }