filter interrupt abbs

This commit is contained in:
Alwin Berger 2023-09-25 12:34:00 +02:00
parent 3fcb9a74e0
commit 38e5767775

View File

@ -133,15 +133,23 @@ fn refine_system_states(input: &mut Vec<RawFreeRTOSSystemState>) -> Vec<RefinedF
for j in delay_list.iter() {let _ = iteration_counts.try_insert(j.task_name.clone(), 0);}
// increase when:
// current and delayed afterwards
// normal current and delayed afterwards
// async current and not previous
if cur.task_name.contains("async") {
*iteration_counts.get_mut(&cur.task_name).unwrap()+=1;
if let Some(l) = ret.last() {
if l.current_task.0.task_name != cur.task_name {
*iteration_counts.get_mut(&cur.task_name).unwrap()+=1;
}
} else {
*iteration_counts.get_mut(&cur.task_name).unwrap()+=1;
}
} else if let Some(_) = delay_list.iter().find(|x| (*x).task_name==cur.task_name) {
*iteration_counts.get_mut(&cur.task_name).unwrap()+=1;
}
let collector = collector.into_iter().map(|x| {let t = *iteration_counts.get(&x.task_name).unwrap_or(&1); (x, t)}).collect();
let delay_list : Vec<(RefinedTCB, u32)> = delay_list.into_iter().map(|x| {let t = *iteration_counts.get(&x.task_name).unwrap_or(&0); (x, t)}).collect();
let filter_delay = delay_list.into_iter().filter(|x| !x.task_name.contains("async"));
let delay_list : Vec<(RefinedTCB, u32)> = filter_delay.map(|x| {let t = *iteration_counts.get(&x.task_name).unwrap_or(&0); (x, t)}).collect();
let t = *iteration_counts.get(&cur.task_name).unwrap_or(&1);
// We don't care about the order
ret.push(RefinedFreeRTOSSystemState {