X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b8b59a0f93d822c81766965a3367c37424591142..9ae37b5e7bcca89a9574f9ae0a01e929f025aed5:/src/simdag/sd_global.c diff --git a/src/simdag/sd_global.c b/src/simdag/sd_global.c index 465af8768a..762d002fa1 100644 --- a/src/simdag/sd_global.c +++ b/src/simdag/sd_global.c @@ -52,7 +52,7 @@ void SD_init(int *argc, char **argv) s_SD_task_t task; - xbt_assert0(!SD_INITIALISED(), "SD_init() already called"); + xbt_assert(!SD_INITIALISED(), "SD_init() already called"); /* Connect our log channels: that must be done manually under windows */ XBT_LOG_CONNECT(sd_kernel, sd); @@ -98,8 +98,8 @@ void SD_init(int *argc, char **argv) #endif XBT_DEBUG("ADD SD LEVELS"); - SD_HOST_LEVEL = xbt_lib_add_level(host_lib,free); - SD_LINK_LEVEL = xbt_lib_add_level(link_lib,free); + SD_HOST_LEVEL = xbt_lib_add_level(host_lib,__SD_workstation_destroy); + SD_LINK_LEVEL = xbt_lib_add_level(link_lib,__SD_link_destroy); } /** @@ -185,7 +185,7 @@ void SD_create_environment(const char *platform_file) void **surf_workstation = NULL; void **surf_link = NULL; - platform_filename = bprintf("%s",platform_file); + platform_filename = xbt_strdup(platform_file); // Reset callbacks surf_parse_reset_callbacks(); @@ -202,6 +202,7 @@ void SD_create_environment(const char *platform_file) } xbt_lib_foreach(link_lib, cursor, name, surf_link) { + if(surf_link[SURF_LINK_LEVEL]) __SD_link_create(surf_link[SURF_LINK_LEVEL], NULL); } @@ -397,6 +398,7 @@ void SD_exit(void) #ifdef HAVE_TRACING TRACE_surf_release(); #endif + if (SD_INITIALISED()) { XBT_DEBUG("Destroying workstation and link dictionaries..."); @@ -420,10 +422,8 @@ void SD_exit(void) xbt_swag_free(sd_global->done_task_set); xbt_swag_free(sd_global->failed_task_set); - // Exit the LIB host_lib - xbt_lib_free(&host_lib); - xbt_lib_free(&link_lib); - xbt_lib_free(&as_router_lib); + XBT_DEBUG("Exiting Surf..."); + surf_exit(); xbt_free(sd_global); sd_global = NULL; @@ -436,8 +436,6 @@ void SD_exit(void) jedule_sd_cleanup(); #endif - XBT_DEBUG("Exiting Surf..."); - surf_exit(); } else { XBT_WARN("SD_exit() called, but SimDag is not running"); /* we cannot use exceptions here because xbt is not running! */ @@ -445,7 +443,7 @@ void SD_exit(void) } /** - * \bried load script file + * \brief load script file */ void SD_load_environment_script(const char *script_file)