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);
#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);
}
/**
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();
}
xbt_lib_foreach(link_lib, cursor, name, surf_link) {
+ if(surf_link[SURF_LINK_LEVEL])
__SD_link_create(surf_link[SURF_LINK_LEVEL], NULL);
}
#ifdef HAVE_TRACING
TRACE_surf_release();
#endif
+
if (SD_INITIALISED()) {
XBT_DEBUG("Destroying workstation and link dictionaries...");
xbt_swag_free(sd_global->done_task_set);
xbt_swag_free(sd_global->failed_task_set);
+ XBT_DEBUG("Exiting Surf...");
+ surf_exit();
+
xbt_free(sd_global);
sd_global = NULL;
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! */
}
/**
- * \bried load script file
+ * \brief load script file
*/
void SD_load_environment_script(const char *script_file)