Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fixup for commit 08ac8cf2900.
[simgrid.git] / src / surf / workstation_ptask_L07.c
index 4425c74..4e5b3ff 100644 (file)
@@ -81,13 +81,13 @@ static void ptask_update_action_bound(surf_action_workstation_L07_t action)
 
   for (i = 0; i < workstation_nb; i++) {
     for (j = 0; j < workstation_nb; j++) {
-      xbt_dynar_t route =
-          global_routing->get_route(surf_resource_name
-                                    (action->workstation_list[i]),
-                                    surf_resource_name(action->
-                                                       workstation_list
-                                                       [j]));
+      xbt_dynar_t route=NULL;
+      routing_get_route_and_latency(surf_resource_name
+          (action->workstation_list[i]),
+          surf_resource_name(action->workstation_list[j]),
+          &route, NULL);
 
+      // FIXME do we really need to recompute the latency here?
       double lat = 0.0;
 
       if (action->communication_amount[i * workstation_nb + j] > 0) {
@@ -404,14 +404,12 @@ static void ptask_update_resource_state(void *id,
 
 static void ptask_finalize(void)
 {
-  if (ptask_parallel_task_link_set != NULL)
-    xbt_dict_free(&ptask_parallel_task_link_set);
+  xbt_dict_free(&ptask_parallel_task_link_set);
 
   surf_model_exit(surf_workstation_model);
   surf_workstation_model = NULL;
   surf_model_exit(surf_network_model);
   surf_network_model = NULL;
-  global_routing->finalize();
 
   ptask_host_count = 0;
 
@@ -464,11 +462,11 @@ static surf_action_t ptask_execute_parallel_task(int workstation_nb,
   for (i = 0; i < workstation_nb; i++) {
     for (j = 0; j < workstation_nb; j++) {
       link_L07_t link;
-      xbt_dynar_t route =
-          global_routing->get_route(surf_resource_name
-                                    (workstation_list[i]),
-                                    surf_resource_name(workstation_list
-                                                       [j]));
+      xbt_dynar_t route=NULL;
+      routing_get_route_and_latency(
+          surf_resource_name(workstation_list[i]),
+          surf_resource_name(workstation_list[j]),
+          &route,NULL); // FIXME: do we want to recompute the latency?
       double lat = 0.0;
 
       if (communication_amount[i * workstation_nb + j] > 0)
@@ -518,11 +516,11 @@ static surf_action_t ptask_execute_parallel_task(int workstation_nb,
   for (i = 0; i < workstation_nb; i++) {
     for (j = 0; j < workstation_nb; j++) {
       link_L07_t link;
-      xbt_dynar_t route =
-          global_routing->get_route(surf_resource_name
-                                    (workstation_list[i]),
-                                    surf_resource_name(workstation_list
-                                                       [j]));
+      xbt_dynar_t route=NULL;
+      routing_get_route_and_latency(
+          surf_resource_name(workstation_list[i]),
+          surf_resource_name(workstation_list[j]),
+          &route,NULL);
 
       if (communication_amount[i * workstation_nb + j] == 0.0)
         continue;
@@ -591,10 +589,13 @@ static surf_action_t ptask_action_sleep(void *cpu, double duration)
   return (surf_action_t) action;
 }
 
-static xbt_dynar_t ptask_get_route(void *src, void *dst)
+static xbt_dynar_t ptask_get_route(void *src, void *dst) // FIXME: kill that callback kind?
 {
-  return global_routing->get_route(surf_resource_name(src),
-                                   surf_resource_name(dst));
+  xbt_dynar_t route=NULL;
+  routing_get_route_and_latency(
+      surf_resource_name(src), surf_resource_name(dst),
+      &route,NULL);
+  return route;
 }
 
 static double ptask_get_link_bandwidth(const void *link)
@@ -715,7 +716,9 @@ static void* ptask_link_create_resource(const char *name,
 static void ptask_parse_link_init(sg_platf_link_cbarg_t link)
 {
   if (link->policy == SURF_LINK_FULLDUPLEX) {
-    ptask_link_create_resource(bprintf("%s_UP", link->id),
+    char *link_id;
+    link_id = bprintf("%s_UP", link->id);
+    ptask_link_create_resource(link_id,
                                link->bandwidth,
                                link->bandwidth_trace,
                                link->latency,
@@ -724,7 +727,9 @@ static void ptask_parse_link_init(sg_platf_link_cbarg_t link)
                                link->state_trace,
                                link->policy,
                                link->properties);
-    ptask_link_create_resource(bprintf("%s_DOWN", link->id),
+    xbt_free(link_id);
+    link_id = bprintf("%s_DOWN", link->id);
+    ptask_link_create_resource(link_id,
                                link->bandwidth,
                                link->bandwidth_trace,
                                link->latency,
@@ -735,8 +740,9 @@ static void ptask_parse_link_init(sg_platf_link_cbarg_t link)
                                NULL); /* FIXME: We need to deep copy the
                                        * properties or we won't be able to free
                                        * it */
+    xbt_free(link_id);
   } else {
-    ptask_link_create_resource(xbt_strdup(link->id),
+    ptask_link_create_resource(link->id,
                                link->bandwidth,
                                link->bandwidth_trace,
                                link->latency,
@@ -887,12 +893,11 @@ static void ptask_model_init_internal(void)
     ptask_maxmin_system = lmm_system_new();
 
   routing_model_create(sizeof(link_L07_t),
-                       ptask_link_create_resource(xbt_strdup("__loopback__"),
+                       ptask_link_create_resource("__loopback__",
                                                   498000000, NULL,
                                                   0.000015, NULL,
                                                   SURF_RESOURCE_ON, NULL,
-                                                  SURF_LINK_FATPIPE, NULL),
-                       ptask_get_link_latency);
+                                                  SURF_LINK_FATPIPE, NULL));
 
 }
 
@@ -907,8 +912,5 @@ void surf_workstation_model_init_ptask_L07(void)
   surf_network_model = surf_model_init();
   ptask_define_callbacks();
   ptask_model_init_internal();
-
-  update_model_description(surf_workstation_model_description,
-                           "ptask_L07", surf_workstation_model);
   xbt_dynar_push(model_list, &surf_workstation_model);
 }