#endif
XBT_DEBUG("ADD MSG LEVELS");
- MSG_HOST_LEVEL = xbt_lib_add_level(host_lib,free);
+ MSG_HOST_LEVEL = xbt_lib_add_level(host_lib, (void_f_pvoid_t) __MSG_host_destroy);
}
/** \defgroup m_channel_management Understanding channels
MSG_process_killall(0);
- free(msg_global);
- msg_global = NULL;
-
/* initialization of the action module */
_MSG_action_exit();
SIMIX_clean();
+ free(msg_global);
+ msg_global = NULL;
+
return MSG_OK;
}
void __MSG_host_destroy(m_host_t host)
{
simdata_host_t simdata = NULL;
- int i = 0;
- char alias[MAX_ALIAS_NAME + 1] = { 0 }; /* buffer used to build the key of the mailbox */
xbt_assert((host != NULL), "Invalid parameters");
/* Clean Simulator data */
- /* SIMIX host will be cleaned when MSG_clean calls SIMIX_clean */
simdata = (host)->simdata;
- for (i = 0; i < msg_global->max_channel; i++) {
- sprintf(alias, "%s:%d", host->name, i);
- MSG_mailbox_free((void *) (simdata->mailboxes[i]));
- memset(alias, 0, MAX_ALIAS_NAME + 1);
- }
-
if (msg_global->max_channel > 0)
free(simdata->mailboxes);