diff options
| author | Paul Mundt <lethal@linux-sh.org> | 2010-07-02 13:05:10 +0900 |
|---|---|---|
| committer | Paul Mundt <lethal@linux-sh.org> | 2010-07-02 13:05:10 +0900 |
| commit | 12462d77ec78be9fb033580b7b64ddf9d0fee44b (patch) | |
| tree | a21157428d46259ed2c8a727ac12a2e658d8181a /tools/perf/util/session.c | |
| parent | 598ee698d9db7beb06e12f4ea9d9a5fbc03a3a77 (diff) | |
| parent | 97e0214044d9f279a3d6286c9f859696ef0b7ebe (diff) | |
Merge branches 'sh/highmem' and 'sh/stable-updates'
Diffstat (limited to 'tools/perf/util/session.c')
| -rw-r--r-- | tools/perf/util/session.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c index 8f83a183576..c422cd67631 100644 --- a/tools/perf/util/session.c +++ b/tools/perf/util/session.c @@ -90,6 +90,7 @@ struct perf_session *perf_session__new(const char *filename, int mode, bool forc memcpy(self->filename, filename, len); self->threads = RB_ROOT; + INIT_LIST_HEAD(&self->dead_threads); self->hists_tree = RB_ROOT; self->last_match = NULL; self->mmap_window = 32; @@ -131,6 +132,16 @@ void perf_session__delete(struct perf_session *self) free(self); } +void perf_session__remove_thread(struct perf_session *self, struct thread *th) +{ + rb_erase(&th->rb_node, &self->threads); + /* + * We may have references to this thread, for instance in some hist_entry + * instances, so just move them to a separate list. + */ + list_add_tail(&th->node, &self->dead_threads); +} + static bool symbol__match_parent_regex(struct symbol *sym) { if (sym->name && !regexec(&parent_regex, sym->name, 0, NULL, 0)) |
