X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7c77c6877f59b1fa95da6d76e1bdbf6e0ac5ddef..999c6ca0248ff66351ef2ebd0901622384212bc6:/src/surf/surf_interface.cpp diff --git a/src/surf/surf_interface.cpp b/src/surf/surf_interface.cpp index a77bc13a11..845a9248e8 100644 --- a/src/surf/surf_interface.cpp +++ b/src/surf/surf_interface.cpp @@ -1,21 +1,16 @@ -/* Copyright (c) 2004-2015. The SimGrid Team. - * All rights reserved. */ +/* Copyright (c) 2004-2017. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ #include "surf_interface.hpp" -#include "cpu_interface.hpp" #include "mc/mc.h" -#include "network_interface.hpp" -#include "simgrid/s4u/engine.hpp" +#include "simgrid/s4u/Engine.hpp" #include "simgrid/sg_config.h" #include "src/instr/instr_private.h" // TRACE_is_enabled(). FIXME: remove by subscribing tracing to the surf signals -#include "src/internal_config.h" #include "src/kernel/routing/NetPoint.hpp" -#include "src/simix/smx_host_private.h" #include "src/surf/HostImpl.hpp" -#include "surf_private.h" + #include #include @@ -32,12 +27,12 @@ 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; +extern std::map storage_types; namespace simgrid { namespace surf { -simgrid::xbt::signal surfExitCallbacks; - +simgrid::xbt::signal surfExitCallbacks; } } @@ -81,7 +76,7 @@ void surf_network_model_init_IB() { xbt_die("Please activate SMPI support in cmake to use the IB network model."); } #endif -#if !HAVE_NS3 +#if !SIMGRID_HAVE_NS3 void surf_network_model_init_NS3() { xbt_die("Please activate NS3 support in cmake and install the dependencies to use the NS3 network model."); } @@ -141,7 +136,7 @@ std::ifstream* surf_ifsopen(const char* name) std::string buff = path_elm + FILE_DELIM + name; fs->open(buff.c_str(), std::ifstream::in); - if (!fs->fail()) { + if (not fs->fail()) { XBT_DEBUG("Found file at %s", buff.c_str()); return fs; } @@ -196,7 +191,7 @@ const char *__surf_get_initial_path() unsigned int len = GetCurrentDirectory(MAX_PATH + 1, current_directory); char root[4] = { 0 }; - if (!len) + if (not len) return nullptr; strncpy(root, current_directory, 3); @@ -247,10 +242,10 @@ int find_model_description(s_surf_model_description_t * table, char *name_list = nullptr; for (i = 0; table[i].name; i++) - if (!strcmp(name, table[i].name)) { + if (not strcmp(name, table[i].name)) { return i; } - if (!table[0].name) + 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++) { @@ -306,31 +301,31 @@ void sg_version() std::printf("This program was linked against %s (git: %s), found in %s.\n", SIMGRID_VERSION_STRING, SIMGRID_GIT_VERSION, SIMGRID_INSTALL_PREFIX); -#if HAVE_MC +#if SIMGRID_HAVE_MC std::printf(" Model-checking support compiled in.\n"); #else std::printf(" Model-checking support disabled at compilation.\n"); #endif -#if HAVE_NS3 +#if SIMGRID_HAVE_NS3 std::printf(" NS3 support compiled in.\n"); #else std::printf(" NS3 support disabled at compilation.\n"); #endif -#if HAVE_JEDULE +#if SIMGRID_HAVE_JEDULE std::printf(" Jedule support compiled in.\n"); #else std::printf(" Jedule support disabled at compilation.\n"); #endif -#if HAVE_LUA +#if SIMGRID_HAVE_LUA std::printf(" Lua support compiled in.\n"); #else std::printf(" Lua support disabled at compilation.\n"); #endif -#if HAVE_MALLOCATOR +#if SIMGRID_HAVE_MALLOCATOR std::printf(" Mallocator support compiled in.\n"); #else std::printf(" Mallocator support disabled at compilation.\n"); @@ -352,16 +347,15 @@ void surf_init(int *argc, char **argv) USER_HOST_LEVEL = simgrid::s4u::Host::extension_create(nullptr); storage_lib = xbt_lib_new(); - storage_type_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 (!all_existing_models) + if (not all_existing_models) all_existing_models = new std::vector(); - if (!future_evt_set) + if (not future_evt_set) future_evt_set = new simgrid::trace_mgr::future_evt_set(); TRACE_surf_alloc(); @@ -380,8 +374,16 @@ void surf_exit() sg_host_exit(); xbt_lib_free(&storage_lib); sg_link_exit(); - xbt_lib_free(&storage_type_lib); 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)); + delete stype->model_properties; + free(stype); + } for (auto model : *all_existing_models) delete model; @@ -450,7 +452,7 @@ double Model::nextOccuringEventLazy(double now) lmm_solve(maxminSystem_); XBT_DEBUG("After share resources, The size of modified actions set is %zd", modifiedSet_->size()); - while(!modifiedSet_->empty()) { + while (not modifiedSet_->empty()) { Action *action = &(modifiedSet_->front()); modifiedSet_->pop_front(); bool max_dur_flag = false; @@ -478,20 +480,19 @@ double Model::nextOccuringEventLazy(double now) } if ((action->getMaxDuration() > NO_MAX_DURATION) && - (min == -1 || action->getStartTime() + action->getMaxDuration() < min)) { + (min <= -1 || action->getStartTime() + action->getMaxDuration() < min)) { // when the task will complete anyway because of the deadline if any min = action->getStartTime() + action->getMaxDuration(); max_dur_flag = true; } - XBT_DEBUG("Action(%p) corresponds to variable %d", action, action->getVariable()->id_int); XBT_DEBUG("Action(%p) Start %f. May finish at %f (got a share of %f). Max_duration %f", action, action->getStartTime(), min, share, action->getMaxDuration()); - if (min != -1) { + if (min > -1) { action->heapUpdate(actionHeap_, min, max_dur_flag ? MAX_DURATION : NORMAL); XBT_DEBUG("Insert at heap action(%p) min %f now %f", action, min, now); } else @@ -576,7 +577,7 @@ bool Resource::isOn() const { return isOn_; } bool Resource::isOff() const { - return ! isOn_; + return not isOn_; } void Resource::turnOn() @@ -764,7 +765,7 @@ void Action::cancel(){ int Action::unref(){ refcount_--; - if (!refcount_) { + if (not refcount_) { if (action_hook.is_linked()) stateSet_->erase(stateSet_->iterator_to(*this)); if (getVariable())