top: consider dead thread with execution time

which executed in the current measurement period but are now dead.
Keep the Entry object up to next period, where the recent_execution_time will
become 0 since it will not execute definitely.

Issue #2638
This commit is contained in:
Alexander Boettcher 2018-01-09 14:35:27 +01:00 committed by Norman Feske
parent 2a0f940bd7
commit 7c0894159f

View File

@ -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);