update for 2.6.24 kernel, fix process free bug
authorcompudj <compudj@04897980-b3bd-0310-b5e0-8ef037075253>
Fri, 23 Nov 2007 20:40:59 +0000 (20:40 +0000)
committercompudj <compudj@04897980-b3bd-0310-b5e0-8ef037075253>
Fri, 23 Nov 2007 20:40:59 +0000 (20:40 +0000)
git-svn-id: http://ltt.polymtl.ca/svn@2751 04897980-b3bd-0310-b5e0-8ef037075253

ltt/branches/poly/lttv/lttv/state.c
ltt/branches/poly/lttv/modules/gui/controlflow/eventhooks.c

index 5fb450f0ea2385dbd38bf3ec36f4f61dca044f77..7835b708d2a33a097b9d037634f368bb0047281e 100644 (file)
@@ -2550,7 +2550,7 @@ static gboolean schedchange(void *hook_data, void *call_data)
         process->state->change = s->parent.timestamp;
       }
       
-      if(state_out == 32 || state_out == 128)
+      if(state_out == 32 || state_out == 64)
          exit_process(s, process); /* EXIT_DEAD || TASK_DEAD */
             /* see sched.h for states */
     }
index 34beb3d7bbaf19235f7569caad6bc3b67a010794..cde8be6baab95c0352e550eb0162e6bf28490b00 100644 (file)
@@ -397,7 +397,7 @@ int before_schedchange_hook(void *hook_data, void *call_data)
 #ifdef EXTRA_CHECK
           if(ltt_time_compare(evtime, time_window.start_time) == -1
                 || ltt_time_compare(evtime, time_window.end_time) == 1)
-                    return;
+                    return FALSE;
 #endif //EXTRA_CHECK
           Drawing_t *drawing = control_flow_data->drawing;
           guint width = drawing->width;
@@ -422,7 +422,7 @@ int before_schedchange_hook(void *hook_data, void *call_data)
 #ifdef EXTRA_CHECK
         if(ltt_time_compare(evtime, time_window.start_time) == -1
               || ltt_time_compare(evtime, time_window.end_time) == 1)
-                  return;
+                  return FALSE;
 #endif //EXTRA_CHECK
         Drawing_t *drawing = control_flow_data->drawing;
         guint width = drawing->width;
@@ -561,7 +561,7 @@ int before_schedchange_hook(void *hook_data, void *call_data)
 #ifdef EXTRA_CHECK
           if(ltt_time_compare(evtime, time_window.start_time) == -1
                 || ltt_time_compare(evtime, time_window.end_time) == 1)
-                    return;
+                    return FALSE;
 #endif //EXTRA_CHECK
           Drawing_t *drawing = control_flow_data->drawing;
           guint width = drawing->width;
@@ -586,7 +586,7 @@ int before_schedchange_hook(void *hook_data, void *call_data)
 #ifdef EXTRA_CHECK
         if(ltt_time_compare(evtime, time_window.start_time) == -1
               || ltt_time_compare(evtime, time_window.end_time) == 1)
-                  return;
+                  return FALSE;
 #endif //EXTRA_CHECK
         Drawing_t *drawing = control_flow_data->drawing;
         guint width = drawing->width;
@@ -786,7 +786,7 @@ int after_schedchange_hook(void *hook_data, void *call_data)
 #ifdef EXTRA_CHECK
     if(ltt_time_compare(evtime, time_window.start_time) == -1
         || ltt_time_compare(evtime, time_window.end_time) == 1)
-            return;
+            return FALSE;
 #endif //EXTRA_CHECK
     Drawing_t *drawing = control_flow_data->drawing;
     guint width = drawing->width;
@@ -924,7 +924,7 @@ int before_execmode_hook(void *hook_data, void *call_data)
 #ifdef EXTRA_CHECK
       if(ltt_time_compare(evtime, time_window.start_time) == -1
             || ltt_time_compare(evtime, time_window.end_time) == 1)
-                return;
+                return FALSE;
 #endif //EXTRA_CHECK
       Drawing_t *drawing = control_flow_data->drawing;
       guint width = drawing->width;
@@ -950,7 +950,7 @@ int before_execmode_hook(void *hook_data, void *call_data)
 #ifdef EXTRA_CHECK
     if(ltt_time_compare(evtime, time_window.start_time) == -1
           || ltt_time_compare(evtime, time_window.end_time) == 1)
-              return;
+              return FALSE;
 #endif //EXTRA_CHECK
     Drawing_t *drawing = control_flow_data->drawing;
     guint width = drawing->width;
@@ -1119,7 +1119,7 @@ int before_process_exit_hook(void *hook_data, void *call_data)
 #ifdef EXTRA_CHECK
       if(ltt_time_compare(evtime, time_window.start_time) == -1
             || ltt_time_compare(evtime, time_window.end_time) == 1)
-                return;
+                return FALSE;
 #endif //EXTRA_CHECK
       Drawing_t *drawing = control_flow_data->drawing;
       guint width = drawing->width;
@@ -1145,7 +1145,7 @@ int before_process_exit_hook(void *hook_data, void *call_data)
 #ifdef EXTRA_CHECK
     if(ltt_time_compare(evtime, time_window.start_time) == -1
           || ltt_time_compare(evtime, time_window.end_time) == 1)
-              return;
+              return FALSE;
 #endif //EXTRA_CHECK
     Drawing_t *drawing = control_flow_data->drawing;
     guint width = drawing->width;
@@ -1283,29 +1283,11 @@ int before_process_release_hook(void *hook_data, void *call_data)
           &birth,
           trace_num);
     if(unlikely(hashed_process_data == NULL))
-    {
-      g_assert(pid == 0 || pid != process->ppid);
-      /* Process not present */
-      Drawing_t *drawing = control_flow_data->drawing;
-      ProcessInfo *process_info;
-      processlist_add(process_list,
-          drawing,
-          pid,
-          process->tgid,
-          process->cpu,
-          process->ppid,
-          &birth,
-          trace_num,
-          process->name,
-          process->brand,
-          &pl_height,
-          &process_info,
-          &hashed_process_data);
-      gtk_widget_set_size_request(drawing->drawing_area,
-                                  -1,
-                                  pl_height);
-      gtk_widget_queue_draw(drawing->drawing_area);
-    }
+      /*
+       * Process already been scheduled out EXIT_DEAD, not in the process list
+       * anymore. Just return.
+       */
+      return FALSE;
 
     /* Now, the process is in the state hash and our own process hash.
      * We definitely can draw the items related to the ending state.
@@ -1321,7 +1303,7 @@ int before_process_release_hook(void *hook_data, void *call_data)
 #ifdef EXTRA_CHECK
         if(ltt_time_compare(evtime, time_window.start_time) == -1
               || ltt_time_compare(evtime, time_window.end_time) == 1)
-                  return;
+                  return FALSE;
 #endif //EXTRA_CHECK
         Drawing_t *drawing = control_flow_data->drawing;
         guint width = drawing->width;
@@ -1347,7 +1329,7 @@ int before_process_release_hook(void *hook_data, void *call_data)
 #ifdef EXTRA_CHECK
       if(ltt_time_compare(evtime, time_window.start_time) == -1
             || ltt_time_compare(evtime, time_window.end_time) == 1)
-                return;
+                return FALSE;
 #endif //EXTRA_CHECK
       Drawing_t *drawing = control_flow_data->drawing;
       guint width = drawing->width;
@@ -1523,7 +1505,7 @@ int after_process_fork_hook(void *hook_data, void *call_data)
 #ifdef EXTRA_CHECK
     if(ltt_time_compare(evtime, time_window.start_time) == -1
           || ltt_time_compare(evtime, time_window.end_time) == 1)
-              return;
+              return FALSE;
 #endif //EXTRA_CHECK
     Drawing_t *drawing = control_flow_data->drawing;
     guint width = drawing->width;
@@ -1550,7 +1532,7 @@ int after_process_fork_hook(void *hook_data, void *call_data)
       hashed_process_data_child->x.under_marked = FALSE;
     }
   }
-  return 0;
+  return FALSE;
 }
 
 
@@ -1654,7 +1636,7 @@ int after_process_exit_hook(void *hook_data, void *call_data)
 #ifdef EXTRA_CHECK
     if(ltt_time_compare(evtime, time_window.start_time) == -1
           || ltt_time_compare(evtime, time_window.end_time) == 1)
-              return;
+              return FALSE;
 #endif //EXTRA_CHECK
     Drawing_t *drawing = control_flow_data->drawing;
     guint width = drawing->width;
@@ -1671,7 +1653,7 @@ int after_process_exit_hook(void *hook_data, void *call_data)
     }
   }
 
-  return 0;
+  return FALSE;
 }
 
 
This page took 0.028527 seconds and 4 git commands to generate.