Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
xbt_swag: remove duplicated code.
[simgrid.git] / src / instr / instr_paje_trace.c
index 142b618..d284dc6 100644 (file)
@@ -155,7 +155,7 @@ void TRACE_paje_start(void)
 {
   char *filename = TRACE_get_filename();
   tracing_file = fopen(filename, "w");
-  xbt_assert1 (tracing_file != NULL, "Tracefile %s could not be opened for writing.", filename);
+  xbt_assert (tracing_file != NULL, "Tracefile %s could not be opened for writing.", filename);
 
   XBT_DEBUG("Filename %s is open for writing", filename);
 
@@ -331,6 +331,11 @@ void TRACE_paje_create_header(void)
 /* internal do the instrumentation module */
 static void insert_into_buffer (paje_event_t tbi)
 {
+  if (TRACE_buffer() == 0){
+    tbi->print (tbi);
+    tbi->free (tbi);
+    return;
+  }
   XBT_DEBUG("%s: insert event_type=%d, timestamp=%f, buffersize=%ld)", __FUNCTION__, tbi->event_type, tbi->timestamp, xbt_dynar_length(buffer));
 
   unsigned int i;
@@ -348,11 +353,11 @@ static void insert_into_buffer (paje_event_t tbi)
       return;
     }
     int inserted = 0;
-    for (i = 0; i < len; i++){
+    for (i = len-1; i > 0; i--){
       paje_event_t e1 = *(paje_event_t*)xbt_dynar_get_ptr(buffer, i);
-      if (e1->timestamp > tbi->timestamp){
-        xbt_dynar_insert_at (buffer, i, &tbi);
-        XBT_DEBUG("%s: inserted at %d", __FUNCTION__, i);
+      if (e1->timestamp <= tbi->timestamp){
+        xbt_dynar_insert_at (buffer, i+1, &tbi);
+        XBT_DEBUG("%s: inserted at %d", __FUNCTION__, i+1);
         inserted = 1;
         break;
       }