|
@@ -1003,6 +1003,17 @@ int machine__process_fork_event(struct machine *machine, union perf_event *event
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+static void machine__remove_thread(struct machine *machine, struct thread *th)
|
|
|
+{
|
|
|
+ machine->last_match = NULL;
|
|
|
+ rb_erase(&th->rb_node, &machine->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, &machine->dead_threads);
|
|
|
+}
|
|
|
+
|
|
|
int machine__process_exit_event(struct machine *machine, union perf_event *event)
|
|
|
{
|
|
|
struct thread *thread = machine__find_thread(machine, event->fork.tid);
|
|
@@ -1039,17 +1050,6 @@ int machine__process_event(struct machine *machine, union perf_event *event)
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
-void machine__remove_thread(struct machine *machine, struct thread *th)
|
|
|
-{
|
|
|
- machine->last_match = NULL;
|
|
|
- rb_erase(&th->rb_node, &machine->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, &machine->dead_threads);
|
|
|
-}
|
|
|
-
|
|
|
static bool symbol__match_parent_regex(struct symbol *sym)
|
|
|
{
|
|
|
if (sym->name && !regexec(&parent_regex, sym->name, 0, NULL, 0))
|