diff --git a/repos/os/src/app/top/main.cc b/repos/os/src/app/top/main.cc index ca74bd4e8b..1fdc46aaba 100644 --- a/repos/os/src/app/top/main.cc +++ b/repos/os/src/app/top/main.cc @@ -119,8 +119,10 @@ struct Trace_subject_registry e->update(trace.subject_info(id)); - /* purge dead threads */ - if (e->info.state() == Genode::Trace::Subject_info::DEAD) { + /* remove dead threads which did not run in the last period */ + if (e->info.state() == Genode::Trace::Subject_info::DEAD && + !e->recent_execution_time) { + trace.free(e->id); _entries.remove(e); Genode::destroy(alloc, e);