xbt_dynar_t surf_path = NULL;
double generic_maxmin_share_resources(xbt_swag_t running_actions,
- size_t offset)
+ size_t offset)
+{
+ return generic_maxmin_share_resources2(running_actions, offset,
+ maxmin_system);
+}
+
+double generic_maxmin_share_resources2(xbt_swag_t running_actions,
+ size_t offset,
+ lmm_system_t sys)
{
surf_action_t action = NULL;
double min = -1;
double value = -1;
#define VARIABLE(action) (*((lmm_variable_t*)(((char *) (action)) + (offset))))
- lmm_solve(maxmin_system);
+ lmm_solve(sys);
xbt_swag_foreach(action, running_actions) {
value = lmm_variable_getvalue(VARIABLE(action));
void surf_action_free(surf_action_t * action)
{
(*action)->resource_type->common_public->action_cancel(*action);
- xbt_free(*action);
+ free(*action);
*action = NULL;
}
action->data=data;
}
+/* HACKHACK: msg_global must be set to a sensible value (like NULL) to use the logging mecanisme
+ * since log_default_appender use xbt_procname which, in SG, is defined in src/msg/m_process.c
+ * (in RL, xbt_procname is defined in src/gras/Virtu/rl_process.c)
+ */
+extern void *msg_global;
+
void surf_init(int *argc, char **argv)
{
int i,j;
char *opt;
xbt_init(argc, argv);
+ msg_global=NULL; /* see HACKHACK note above */
if (!surf_path) {
const char *initial_path = "./";
surf_path = xbt_dynar_new(sizeof(char*), NULL);
char* path = NULL;
FILE *file = NULL;
+ xbt_assert1((name!=NULL), "Need a real file name, not \"%s\"\n",name);
+
xbt_assert0(surf_path,"surf_init has to be called before using surf_fopen");
if(!path_name) path_name=xbt_new0(char,strlen(name)+1);
tmgr_finalize();
surf_parse_lex_destroy();
if(path_name) {
- xbt_free(path_name);
+ free(path_name);
path_name = NULL;
}
}