Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot//simgrid/simgrid
authorChristophe Thiéry <christopho128@gmail.com>
Mon, 18 Apr 2011 12:10:15 +0000 (14:10 +0200)
committerChristophe Thiéry <christopho128@gmail.com>
Mon, 18 Apr 2011 12:10:15 +0000 (14:10 +0200)
src/msg/global.c
src/msg/host.c

index 55d4b0a..0652b7e 100644 (file)
@@ -80,7 +80,7 @@ void MSG_global_init(int *argc, char **argv)
 #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
@@ -185,9 +185,6 @@ MSG_error_t MSG_clean(void)
 
   MSG_process_killall(0);
 
-  free(msg_global);
-  msg_global = NULL;
-
   /* initialization of the action module */
   _MSG_action_exit();
 
@@ -197,6 +194,9 @@ MSG_error_t MSG_clean(void)
 
   SIMIX_clean();
 
+  free(msg_global);
+  msg_global = NULL;
+
   return MSG_OK;
 }
 
index eef179c..d9739d2 100644 (file)
@@ -127,21 +127,12 @@ m_host_t MSG_host_self(void)
 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);