}
FILE *surf_fopen(const char *name, const char *mode)
{
- char *buff;
FILE *file = nullptr;
xbt_assert(name);
/* search relative files in the path */
for (auto path_elm : surf_path) {
- buff = bprintf("%s" FILE_DELIM "%s", path_elm.c_str(), name);
+ char* buff = bprintf("%s" FILE_DELIM "%s", path_elm.c_str(), name);
file = fopen(buff, mode);
free(buff);
return -1;
}
-static inline void surf_storage_free(void *r)
+void sg_version_check(int lib_version_major, int lib_version_minor, int lib_version_patch)
{
- delete static_cast<simgrid::surf::StorageImpl*>(r);
-}
-
-void sg_version_check(int lib_version_major,int lib_version_minor,int lib_version_patch) {
- if ((lib_version_major != SIMGRID_VERSION_MAJOR) || (lib_version_minor != SIMGRID_VERSION_MINOR)) {
- fprintf(stderr,
+ if ((lib_version_major != SIMGRID_VERSION_MAJOR) || (lib_version_minor != SIMGRID_VERSION_MINOR)) {
+ fprintf(stderr, "FATAL ERROR: Your program was compiled with SimGrid version %d.%d.%d, "
+ "and then linked against SimGrid %d.%d.%d. Please fix this.\n",
+ lib_version_major, lib_version_minor, lib_version_patch, SIMGRID_VERSION_MAJOR, SIMGRID_VERSION_MINOR,
+ SIMGRID_VERSION_PATCH);
+ abort();
+ }
+ if (lib_version_patch != SIMGRID_VERSION_PATCH) {
+ if (SIMGRID_VERSION_PATCH >= 90 || lib_version_patch >= 90) {
+ fprintf(
+ stderr,
"FATAL ERROR: Your program was compiled with SimGrid version %d.%d.%d, "
- "and then linked against SimGrid %d.%d.%d. Please fix this.\n",
- lib_version_major,lib_version_minor,lib_version_patch,
- SIMGRID_VERSION_MAJOR,SIMGRID_VERSION_MINOR,SIMGRID_VERSION_PATCH);
+ "and then linked against SimGrid %d.%d.%d. \n"
+ "One of them is a development version, and should not be mixed with the stable release. Please fix this.\n",
+ lib_version_major, lib_version_minor, lib_version_patch, SIMGRID_VERSION_MAJOR, SIMGRID_VERSION_MINOR,
+ SIMGRID_VERSION_PATCH);
abort();
}
- if (lib_version_patch != SIMGRID_VERSION_PATCH) {
- if(SIMGRID_VERSION_PATCH >= 90 || lib_version_patch >=90){
- fprintf(stderr,
- "FATAL ERROR: Your program was compiled with SimGrid version %d.%d.%d, "
- "and then linked against SimGrid %d.%d.%d. \n"
- "One of them is a development version, and should not be mixed with the stable release. Please fix this.\n",
- lib_version_major,lib_version_minor,lib_version_patch,
- SIMGRID_VERSION_MAJOR,SIMGRID_VERSION_MINOR,SIMGRID_VERSION_PATCH);
- abort();
- }
- fprintf(stderr,
- "Warning: Your program was compiled with SimGrid version %d.%d.%d, "
- "and then linked against SimGrid %d.%d.%d. Proceeding anyway.\n",
- lib_version_major,lib_version_minor,lib_version_patch,
- SIMGRID_VERSION_MAJOR,SIMGRID_VERSION_MINOR,SIMGRID_VERSION_PATCH);
- }
+ fprintf(stderr, "Warning: Your program was compiled with SimGrid version %d.%d.%d, "
+ "and then linked against SimGrid %d.%d.%d. Proceeding anyway.\n",
+ lib_version_major, lib_version_minor, lib_version_patch, SIMGRID_VERSION_MAJOR, SIMGRID_VERSION_MINOR,
+ SIMGRID_VERSION_PATCH);
+ }
}
void sg_version_get(int* ver_major, int* ver_minor, int* ver_patch)
XBT_DEBUG("Create all Libs");
USER_HOST_LEVEL = simgrid::s4u::Host::extension_create(nullptr);
- storage_lib = xbt_lib_new();
watched_hosts_lib = xbt_dict_new_homogeneous(nullptr);
- XBT_DEBUG("Add SURF levels");
- SURF_STORAGE_LEVEL = xbt_lib_add_level(storage_lib,surf_storage_free);
-
xbt_init(argc, argv);
if (not all_existing_models)
all_existing_models = new std::vector<simgrid::surf::Model*>();
TRACE_end(); /* Just in case it was not called by the upper layer (or there is no upper layer) */
sg_host_exit();
- xbt_lib_free(&storage_lib);
sg_link_exit();
xbt_dict_free(&watched_hosts_lib);
for (auto e : storage_types) {
delete stype->model_properties;
free(stype);
}
+ for (auto s : *simgrid::surf::StorageImpl::storages)
+ delete s.second;
+ delete simgrid::surf::StorageImpl::storages;
for (auto model : *all_existing_models)
delete model;