X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d33e7a563a884247bff85406dcc589a70a162e79..a0640cb7c160c8fcc32e497b2e0df13db15d6a31:/src/surf/surf_interface.cpp diff --git a/src/surf/surf_interface.cpp b/src/surf/surf_interface.cpp index cf5f486fa7..7d685bf8f5 100644 --- a/src/surf/surf_interface.cpp +++ b/src/surf/surf_interface.cpp @@ -12,6 +12,8 @@ #include "src/surf/HostImpl.hpp" #include +#include +#include #include XBT_LOG_NEW_CATEGORY(surf, "All SURF categories"); @@ -26,7 +28,8 @@ std::vector * all_existing_models = nullptr; /* to destroy models simgrid::trace_mgr::future_evt_set *future_evt_set = nullptr; std::vector surf_path; std::vector host_that_restart; -xbt_dict_t watched_hosts_lib; +/** set of hosts for which one want to be notified if they ever restart. */ +std::set watched_hosts; extern std::map storage_types; namespace simgrid { @@ -161,9 +164,8 @@ FILE *surf_fopen(const char *name, const char *mode) /* search relative files in the path */ for (auto path_elm : surf_path) { - char* buff = bprintf("%s" FILE_DELIM "%s", path_elm.c_str(), name); - file = fopen(buff, mode); - free(buff); + std::string buff = path_elm + FILE_DELIM + name; + file = fopen(buff.c_str(), mode); if (file) return file; @@ -240,20 +242,18 @@ void model_help(const char *category, s_surf_model_description_t * table) printf(" %s: %s\n", table[i].name, table[i].description); } -int find_model_description(s_surf_model_description_t * table, - const char *name) +int find_model_description(s_surf_model_description_t* table, const char* name) { - int i; - char *name_list = nullptr; - - for (i = 0; table[i].name; i++) + for (int i = 0; table[i].name; i++) if (not strcmp(name, table[i].name)) { return i; } + if (not table[0].name) xbt_die("No model is valid! This is a bug."); - name_list = xbt_strdup(table[0].name); - for (i = 1; table[i].name; i++) { + + char* name_list = xbt_strdup(table[0].name); + for (int i = 1; table[i].name; i++) { name_list = (char *) xbt_realloc(name_list, strlen(name_list) + strlen(table[i].name) + 3); strncat(name_list, ", ", 2); strncat(name_list, table[i].name, strlen(table[i].name)); @@ -346,8 +346,6 @@ void surf_init(int *argc, char **argv) XBT_DEBUG("Create all Libs"); USER_HOST_LEVEL = simgrid::s4u::Host::extension_create(nullptr); - watched_hosts_lib = xbt_dict_new_homogeneous(nullptr); - xbt_init(argc, argv); if (not all_existing_models) all_existing_models = new std::vector(); @@ -369,7 +367,6 @@ void surf_exit() sg_host_exit(); sg_link_exit(); - xbt_dict_free(&watched_hosts_lib); for (auto e : storage_types) { storage_type_t stype = e.second; free(stype->model); @@ -379,9 +376,9 @@ void surf_exit() delete stype->model_properties; free(stype); } - for (auto s : *simgrid::surf::StorageImpl::storages) + for (auto s : *simgrid::surf::StorageImpl::storagesMap()) delete s.second; - delete simgrid::surf::StorageImpl::storages; + delete simgrid::surf::StorageImpl::storagesMap(); for (auto model : *all_existing_models) delete model; @@ -446,9 +443,9 @@ double Model::nextOccuringEvent(double now) double Model::nextOccuringEventLazy(double now) { - XBT_DEBUG("Before share resources, the size of modified actions set is %zd", modifiedSet_->size()); + XBT_DEBUG("Before share resources, the size of modified actions set is %zu", modifiedSet_->size()); lmm_solve(maxminSystem_); - XBT_DEBUG("After share resources, The size of modified actions set is %zd", modifiedSet_->size()); + XBT_DEBUG("After share resources, The size of modified actions set is %zu", modifiedSet_->size()); while (not modifiedSet_->empty()) { Action *action = &(modifiedSet_->front()); @@ -651,7 +648,7 @@ Action::~Action() { } void Action::finish() { - finishTime_ = surf_get_clock(); + finishTime_ = surf_get_clock(); } Action::State Action::getState() @@ -739,8 +736,6 @@ void Action::setMaxDuration(double duration) heapRemove(getModel()->getActionHeap()); } -void Action::gapRemove() {} - void Action::setSharingWeight(double weight) { XBT_IN("(%p,%g)", this, weight); @@ -869,13 +864,10 @@ void Action::updateRemainingLazy(double now) { double delta = 0.0; - if(getModel() == surf_network_model) - { + if (getModel() == surf_network_model) { if (suspended_ != 0) return; - } - else - { + } else { xbt_assert(stateSet_ == getModel()->getRunningActionSet(), "You're updating an action that is not running."); xbt_assert(sharingWeight_ > 0, "You're updating an action that seems suspended."); } @@ -894,8 +886,7 @@ void Action::updateRemainingLazy(double now) XBT_DEBUG("Updating action(%p): remains is now %f", this, remains_); } - if(getModel() == surf_network_model) - { + if (getModel() == surf_network_model) { if (maxDuration_ != NO_MAX_DURATION) double_update(&maxDuration_, delta, sg_surf_precision);