From 0623786fda92bed93596f8de80575ab2db7385f2 Mon Sep 17 00:00:00 2001 From: alegrand Date: Tue, 7 Dec 2004 18:14:26 +0000 Subject: [PATCH 1/1] move resource_used to the private part git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@550 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- src/include/surf/surf.h | 1 - src/surf/surf.c | 5 ++++- src/surf/surf_private.h | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/include/surf/surf.h b/src/include/surf/surf.h index 8f192f0304..5ae08070a6 100644 --- a/src/include/surf/surf.h +++ b/src/include/surf/surf.h @@ -57,7 +57,6 @@ typedef struct surf_resource_public { s_surf_action_state_t states; /* Any living action on this resource */ void *(*name_service)(const char *name); const char *(*get_resource_name)(void *resource_id); - int (*resource_used)(void *resource_id); e_surf_action_state_t (*action_get_state)(surf_action_t action); void (*action_free)(surf_action_t action); diff --git a/src/surf/surf.c b/src/surf/surf.c index 8d6ce0cbfe..27dfe04ec0 100644 --- a/src/surf/surf.c +++ b/src/surf/surf.c @@ -118,11 +118,13 @@ xbt_heap_float_t surf_solve(void) min = resource_next_action_end; } + if(min<0.0) return 0.0; + while ((next_event_date = tmgr_history_next_date(history)) != -1.0) { if(next_event_date > NOW+min) break; while ((event=tmgr_history_get_next_event_leq(history, next_event_date, &value, (void **) &resource_obj))) { - if(resource_obj->resource->common_public->resource_used(resource_obj)) { + if(resource_obj->resource->common_private->resource_used(resource_obj)) { min = next_event_date-NOW; } /* update state of resource_obj according to new value. Does not touch lmm. @@ -132,6 +134,7 @@ xbt_heap_float_t surf_solve(void) } } + xbt_dynar_foreach (resource_list,i,resource) { resource->common_private->update_actions_state(NOW, min); } diff --git a/src/surf/surf_private.h b/src/surf/surf_private.h index 0c28c7bb86..7ee42c59a1 100644 --- a/src/surf/surf_private.h +++ b/src/surf/surf_private.h @@ -13,6 +13,7 @@ #include "surf/surf_parse.h" typedef struct surf_resource_private { + int (*resource_used)(void *resource_id); /* Share the resources to the actions and return in hom much time the next action may terminate */ xbt_heap_float_t(*share_resources) (xbt_heap_float_t now); -- 2.20.1