#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;
+/** 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, storage_type_t> storage_types;
namespace simgrid {
/* 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;
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);
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;
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());
heapRemove(getModel()->getActionHeap());
}
-void Action::gapRemove() {}
-
void Action::setSharingWeight(double weight)
{
XBT_IN("(%p,%g)", this, weight);
double_update(&maxDuration_, delta, sg_surf_precision);
//FIXME: duplicated code
- if ((remains_ <= 0) &&
- (lmm_get_variable_weight(getVariable()) > 0)) {
- finish();
- setState(Action::State::done);
- heapRemove(getModel()->getActionHeap());
- } else if (((maxDuration_ != NO_MAX_DURATION)
- && (maxDuration_ <= 0))) {
+ if (((remains_ <= 0) && (lmm_get_variable_weight(getVariable()) > 0)) ||
+ ((maxDuration_ > NO_MAX_DURATION) && (maxDuration_ <= 0))) {
finish();
setState(Action::State::done);
heapRemove(getModel()->getActionHeap());