#include "src/surf/HostImpl.hpp"
#include <fstream>
+#include <set>
+#include <string>
#include <vector>
XBT_LOG_NEW_CATEGORY(surf, "All SURF categories");
simgrid::trace_mgr::future_evt_set *future_evt_set = nullptr;
std::vector<std::string> surf_path;
std::vector<simgrid::s4u::Host*> host_that_restart;
-xbt_dict_t watched_hosts_lib;
-extern std::map<std::string, storage_type_t> storage_types;
+/** set of hosts for which one want to be notified if they ever restart. */
+std::set<std::string> watched_hosts;
+extern std::map<std::string, simgrid::surf::StorageType*> storage_types;
namespace simgrid {
namespace surf {
{nullptr, nullptr, nullptr} /* this array must be nullptr terminated */
};
-#if HAVE_THREAD_CONTEXTS
-static xbt_parmap_t surf_parmap = nullptr; /* parallel map on models */
-#endif
-
double NOW = 0;
double surf_get_clock()
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));
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<simgrid::surf::Model*>();
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);
- free(stype->type_id);
- free(stype->content);
- xbt_dict_free(&(stype->properties));
+ simgrid::surf::StorageType* stype = e.second;
+ delete stype->properties;
delete stype->model_properties;
- free(stype);
+ delete 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;
future_evt_set = nullptr;
}
-#if HAVE_THREAD_CONTEXTS
- xbt_parmap_destroy(surf_parmap);
-#endif
-
tmgr_finalize();
sg_platf_exit();
simgrid::s4u::Engine::shutdown();
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());
}
void Action::finish() {
- finishTime_ = surf_get_clock();
+ finishTime_ = surf_get_clock();
}
Action::State Action::getState()
{
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.");
}
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);