#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);
}
/**
#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);
+ // Exit the LIB host_lib
+ xbt_lib_free(&host_lib);
+ xbt_lib_free(&link_lib);
+ xbt_lib_free(&as_router_lib);
+
xbt_free(sd_global);
sd_global = NULL;
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! */