find_process corrected to match how processes are stored in trace state context
[lttv.git] / ltt / branches / poly / lttv / modules / gui / controlflow / eventhooks.c
index 5b7d22b31a0df4fa465e6b559c1d561f373fdb06..662090105665f681173f946d79e576da3a5b106b 100644 (file)
@@ -224,9 +224,9 @@ void request_background_data(ControlFlowData *control_flow_data)
  * @return The widget created.
  */
 GtkWidget *
-h_guicontrolflow(Tab *tab, LttvTracesetSelector * s, char * key)
+h_guicontrolflow(Tab *tab)
 {
-  g_info("h_guicontrolflow, %p, %p, %s", tab, s, key);
+  g_info("h_guicontrolflow, %p", tab);
   ControlFlowData *control_flow_data = guicontrolflow() ;
   
   control_flow_data->tab = tab;
@@ -567,6 +567,11 @@ int draw_before_hook(void *hook_data, void *call_data)
         }
       }
     }
+  } else if(strcmp(
+          ltt_eventtype_name(ltt_event_eventtype(e)),"process") == 0) {
+    /* We are in a fork or exit event */
+
+
   }
 
   
@@ -1290,7 +1295,13 @@ int draw_after_hook(void *hook_data, void *call_data)
           width,
           &hashed_process_data_in->x);
     }
+  } else if(strcmp(
+          ltt_eventtype_name(ltt_event_eventtype(e)),"process") == 0) {
+    /* We are in a fork or exit event */
+
+
   }
+
   return 0;
 
 
@@ -1976,12 +1987,15 @@ gint traceset_notify(void *hook_data, void *call_data)
   Drawing_t *drawing = control_flow_data->drawing;
   GtkWidget *widget = drawing->drawing_area;
 
-  drawing->damage_begin = 0;
-  drawing->damage_end = drawing->width;
 
   drawing_clear(control_flow_data->drawing);
   processlist_clear(control_flow_data->process_list);
+  redraw_notify(control_flow_data, NULL);
 
+  request_background_data(control_flow_data);
+#if 0
+  drawing->damage_begin = 0;
+  drawing->damage_end = drawing->width;
   if(drawing->damage_begin < drawing->damage_end)
   {
     drawing_data_request(drawing,
@@ -1996,8 +2010,7 @@ gint traceset_notify(void *hook_data, void *call_data)
                              0,0,
                              drawing->width,
                              drawing->height);
-
-  request_background_data(control_flow_data);
+#endif //0
  
   return FALSE;
 }
@@ -2150,14 +2163,7 @@ typedef struct _ClosureData {
  * 
  * - For each CPU of the trace
  *   - Search in trace states by PID and CPU key
- *     - For each ProcessState found
- *       - If state is not LTTV_STATE_WAIT
- *        - Then this process state is the current one for this PID.
- *        - Stop search.
  * - If no ProcessState found, return NULL.
- * - If all ProcessState were in LTTV_STATE_WAIT state, return one of
- *   them arbitrarily.
- *   Than means state is LTTV_STATE_WAIT, CPU unknown.
  */
 static LttvProcessState *find_process(LttvTraceState *tstate, guint pid)
 {
@@ -2172,11 +2178,9 @@ static LttvProcessState *find_process(LttvTraceState *tstate, guint pid)
     LttvProcessState *state = lttv_state_find_process_from_trace(tstate,
                                                                  cpu_name,
                                                                  pid);
-    
     if(state != NULL) {
       real_state = state;
-      if(state->state->s != LTTV_STATE_WAIT)
-        break;
+      break;
     }
   }
   return real_state;
This page took 0.025934 seconds and 4 git commands to generate.