Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Protect some host execute functions in the case that simix actions don't have a surf...
[simgrid.git] / src / instr / instr_routing.c
index 75d33b2..bc53ae6 100644 (file)
@@ -212,6 +212,8 @@ container_t newContainer (const char *name, e_container_types kind, container_t
       case INSTR_LINK: new->type = getContainerType ("LINK", new->father->type); break;
       case INSTR_ROUTER: new->type = getContainerType ("ROUTER", new->father->type); break;
       case INSTR_SMPI: new->type = getContainerType ("MPI", new->father->type); break;
+      case INSTR_MSG_PROCESS: new->type = getContainerType ("MSG_PROCESS", new->father->type); break;
+      case INSTR_MSG_TASK: new->type = getContainerType ("MSG_TASK", new->father->type); break;
       default: xbt_die ("Congratulations, you have found a bug on newContainer function of instr_routing.c"); break;
     }
   }
@@ -387,7 +389,7 @@ static void recursiveGraphExtraction (container_t container)
             (child2->kind == INSTR_HOST  || child2->kind == INSTR_ROUTER)){
 
           //getting route
-          xbt_dynar_t route;
+          xbt_dynar_t route = NULL;
           xbt_ex_t exception;
           TRY {
             route = global_routing->get_route (child_name1, child_name2);
@@ -412,7 +414,7 @@ static void recursiveGraphExtraction (container_t container)
 
           //getting route
           routing_component_t root = global_routing->root;
-          route_extended_t route;
+          route_extended_t route = NULL;
           xbt_ex_t exception;
           TRY {
             route = root->get_route (root, child_name1, child_name2);
@@ -509,6 +511,18 @@ static void instr_routing_parse_start_host ()
       getLinkType ("MPI_LINK", rootType, mpi, mpi);
     }
   }
+
+  if (TRACE_msg_process_is_enabled()) {
+    type_t msg_process = getContainerType("MSG_PROCESS", new->type);
+    getStateType ("MSG_PROCESS_STATE", msg_process);
+    getLinkType ("MSG_PROCESS_LINK", rootType, msg_process, msg_process);
+  }
+
+  if (TRACE_msg_task_is_enabled()) {
+    type_t msg_task = getContainerType ("MSG_TASK", new->type);
+    getStateType ("MSG_TASK_STATE", msg_task);
+    getLinkType ("MSG_TASK_LINK", rootType, msg_task, msg_task);
+  }
 }
 
 static void instr_routing_parse_end_host ()