xbt_dynar_t host_that_restart = NULL;
xbt_dict_t watched_hosts_lib;
+surf_callback(void, void) surfExitCallbacks;
+
s_surf_model_description_t surf_plugin_description[] = {
{"Energy",
"Cpu energy consumption.",
s_surf_model_description_t surf_vm_workstation_model_description[] = {
{"default",
- "Default vm workstation model.)",
+ "Default vm workstation model.",
surf_vm_workstation_model_init_current_default},
{NULL, NULL, NULL} /* this array must be NULL terminated */
};
as_router_lib = xbt_lib_new();
storage_lib = xbt_lib_new();
storage_type_lib = xbt_lib_new();
+ file_lib = xbt_lib_new();
watched_hosts_lib = xbt_dict_new_homogeneous(NULL);
XBT_DEBUG("Add routing levels");
xbt_lib_free(&as_router_lib);
xbt_lib_free(&storage_lib);
xbt_lib_free(&storage_type_lib);
-
+ xbt_lib_free(&file_lib);
xbt_dict_free(&watched_hosts_lib);
xbt_dynar_foreach(model_list, iter, model)
xbt_dynar_free(&model_list_invoke);
routing_exit();
+ surf_callback_emit(surfExitCallbacks);
+
if (maxmin_system) {
lmm_system_free(maxmin_system);
maxmin_system = NULL;
max_dur_flag = 1;
}
- XBT_DEBUG("Action(%p) Start %lf Finish %lf Max_duration %lf", action,
+ XBT_DEBUG("Action(%p) Start %f Finish %f Max_duration %f", action,
action->getStartTime(), now + value,
action->getMaxDuration());
if (min != -1) {
action->heapRemove(p_actionHeap);
action->heapInsert(p_actionHeap, min, max_dur_flag ? MAX_DURATION : NORMAL);
- XBT_DEBUG("Insert at heap action(%p) min %lf now %lf", action, min,
+ XBT_DEBUG("Insert at heap action(%p) min %f now %f", action, min,
now);
} else DIE_IMPOSSIBLE;
}
else
min = -1;
- XBT_DEBUG("The minimum with the HEAP %lf", min);
+ XBT_DEBUG("The minimum with the HEAP %f", min);
return min;
}
: p_name(NULL), p_properties(NULL), p_model(NULL)
{}
-Resource::Resource(surf_model_t model, const char *name, xbt_dict_t props)
+Resource::Resource(ModelPtr model, const char *name, xbt_dict_t props)
: p_name(xbt_strdup(name)), p_properties(props), p_model(model)
, m_running(true), m_stateCurrent(SURF_RESOURCE_ON)
{}
-Resource::Resource(surf_model_t model, const char *name, xbt_dict_t props, lmm_constraint_t constraint)
+Resource::Resource(ModelPtr model, const char *name, xbt_dict_t props, lmm_constraint_t constraint)
: p_name(xbt_strdup(name)), p_properties(props), p_model(model)
, m_running(true), m_stateCurrent(SURF_RESOURCE_ON), p_constraint(constraint)
{}
-Resource::Resource(surf_model_t model, const char *name, xbt_dict_t props, e_surf_resource_state_t stateInit)
+Resource::Resource(ModelPtr model, const char *name, xbt_dict_t props, e_surf_resource_state_t stateInit)
: p_name(xbt_strdup(name)), p_properties(props), p_model(model)
, m_running(true), m_stateCurrent(stateInit)
{}
}
xbt_dict_t Resource::getProperties() {
+ if (p_properties==NULL)
+ p_properties = xbt_dict_new();
return p_properties;
}
XBT_OUT();
}
+double Action::getBound()
+{
+ return (p_variable) ? lmm_variable_getbound(p_variable) : 0;
+}
+
+void Action::setBound(double bound)
+{
+ XBT_IN("(%p,%g)", this, bound);
+ if (p_variable)
+ lmm_update_variable_bound(getModel()->getMaxminSystem(), getVariable(), bound);
+
+ if (getModel()->getUpdateMechanism() == UM_LAZY)
+ heapRemove(getModel()->getActionHeap());
+ XBT_OUT();
+}
+
double Action::getStartTime()
{
return m_start;