Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
add gatherv replay action (bigdft can be replayed easily now)
[simgrid.git] / src / instr / jedule / jedule_output.c
index 25682b2..401b09b 100644 (file)
@@ -175,12 +175,12 @@ static void print_event(jed_event_t event) {
 
     int start = subset->start_idx;
     int end   = subset->start_idx + subset->nres - 1;
-        char resid[1024];
+    char resid[1024];
 
-        get_hierarchy_string(subset->parent, resid);
+    get_hierarchy_string(subset->parent, resid);
         
     fprintf(jed_file, "<select resources=\"");
-        fprintf(jed_file, "%s", resid);
+    fprintf(jed_file, "%s", resid);
     fprintf(jed_file, ".[%d-%d]", start, end);
     fprintf(jed_file, "\" />\n");
 
@@ -223,23 +223,30 @@ void write_jedule_output(FILE *file, jedule_t jedule,
 //  xbt_assert( jed_file != NULL );
 
   jed_file = file;
+  if (!xbt_dynar_is_empty(jedule_event_list)){
 
-  fprintf(jed_file, "<jedule>\n");
+    fprintf(jed_file, "<jedule>\n");
 
-  fprintf(jed_file, "<jedule_meta>\n");
-  print_key_value_dict(jedule->jedule_meta_info);
-  fprintf(jed_file, "</jedule_meta>\n");
+    fprintf(jed_file, "<jedule_meta>\n");
+    print_key_value_dict(jedule->jedule_meta_info);
+    fprintf(jed_file, "</jedule_meta>\n");
 
-  print_platform(jedule->root_container);
+    print_platform(jedule->root_container);
 
-  print_events(event_list);
+    print_events(event_list);
 
-  fprintf(jed_file, "</jedule>\n");
+    fprintf(jed_file, "</jedule>\n");
+  }
+}
 
+static void jed_event_free_ref(void *evp)
+{
+  jed_event_t ev = *(jed_event_t *)evp;
+  jed_event_free(ev);
 }
 
 void jedule_init_output() {
-  jedule_event_list = xbt_dynar_new(sizeof(jed_event_t), NULL);
+  jedule_event_list = xbt_dynar_new(sizeof(jed_event_t), jed_event_free_ref);
 }
 
 void jedule_cleanup_output() {