X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/08cb25aa027aa2f86e89fd04f0de3ac319083be2..dadfefc9f3cc6cf0fc28a9025307f9f08dc4ac96:/src/surf/storage_n11.cpp diff --git a/src/surf/storage_n11.cpp b/src/surf/storage_n11.cpp index 28947400bf..fd4a72fc6b 100644 --- a/src/surf/storage_n11.cpp +++ b/src/surf/storage_n11.cpp @@ -9,9 +9,6 @@ #include /*ceil*/ XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_storage); -static int storage_selective_update = 0; -static xbt_swag_t storage_running_action_set_that_does_not_need_being_checked = nullptr; - /************* * CallBacks * *************/ @@ -64,20 +61,10 @@ namespace simgrid { namespace surf { StorageN11Model::StorageN11Model() : StorageModel() { - Action *action = nullptr; - - XBT_DEBUG("surf_storage_model_init_internal"); - - storage_running_action_set_that_does_not_need_being_checked = xbt_swag_new(xbt_swag_offset(*action, stateHookup_)); - if (!maxminSystem_) { - maxminSystem_ = lmm_system_new(storage_selective_update); - } + maxminSystem_ = lmm_system_new(true /* lazy update */); } -StorageN11Model::~StorageN11Model(){ - xbt_swag_free(storage_running_action_set_that_does_not_need_being_checked); - storage_running_action_set_that_does_not_need_being_checked = nullptr; -} +StorageN11Model::~StorageN11Model() = default; #include "src/surf/xml/platf.hpp" // FIXME: move that back to the parsing area Storage *StorageN11Model::createStorage(const char* id, const char* type_id, @@ -110,16 +97,13 @@ Storage *StorageN11Model::createStorage(const char* id, const char* type_id, return storage; } -double StorageN11Model::next_occuring_event(double /*now*/) +double StorageN11Model::nextOccuringEvent(double now) { - XBT_DEBUG("storage_share_resources"); - - double min_completion = shareResourcesMaxMin(getRunningActionSet(), maxminSystem_, lmm_solve); + double min_completion = StorageModel::nextOccuringEventFull(now); - // Foreach disk for(auto storage: p_storageList) { double rate = 0; - // Foreach write action on disk + // Foreach write action on that disk for (auto write_action: storage->writeActions_) { rate += lmm_variable_getvalue(write_action->getVariable()); }