From: Søren Sandmann Pedersen Date: Wed, 10 Mar 2010 11:58:22 +0000 (-0500) Subject: Ignore fork events that are just new threads being spawned. X-Git-Tag: 1.1.6~12 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2d5cf4c93fe7d57f797a74513e24aeabe776f636;p=platform%2Fupstream%2Fsysprof.git Ignore fork events that are just new threads being spawned. These would cause mysterious new processes to show up. --- diff --git a/collector.c b/collector.c index 438b920..1c7af11 100644 --- a/collector.c +++ b/collector.c @@ -574,7 +574,7 @@ process_comm (Collector *collector, comm_event_t *comm) static void process_fork (Collector *collector, fork_event_t *fork) { - d_print ("ppid: %d pid: %d ptid: %d tid %d", + g_print ("ppid: %d pid: %d ptid: %d tid %d\n", fork->ppid, fork->pid, fork->ptid, fork->tid); tracker_add_fork (collector->tracker, fork->ppid, fork->pid); diff --git a/tracker.c b/tracker.c index c7427b8..90fa26b 100644 --- a/tracker.c +++ b/tracker.c @@ -493,6 +493,12 @@ process_fork (state_t *state, fork_t *fork) process_t *parent = g_hash_table_lookup ( state->processes_by_pid, GINT_TO_POINTER (GET_PID (fork->header))); + if (GET_PID (fork->header) == fork->child_pid) + { + /* Just a new thread being spawned */ + return; + } + #if 0 if (parent) #endif @@ -505,7 +511,12 @@ process_fork (state_t *state, fork_t *fork) #endif process->pid = fork->child_pid; - process->comm = g_strdup (parent? parent->comm : ""); + + if (parent) + process->comm = g_strdup (parent->comm); + else + process->comm = g_strdup_printf ("", fork->child_pid); + process->maps = g_ptr_array_new (); if (parent)