filter interrupt abbs
This commit is contained in:
parent
3fcb9a74e0
commit
38e5767775
@ -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);}
|
for j in delay_list.iter() {let _ = iteration_counts.try_insert(j.task_name.clone(), 0);}
|
||||||
|
|
||||||
// increase when:
|
// increase when:
|
||||||
// current and delayed afterwards
|
// normal current and delayed afterwards
|
||||||
|
// async current and not previous
|
||||||
if cur.task_name.contains("async") {
|
if cur.task_name.contains("async") {
|
||||||
|
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;
|
*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) {
|
} else if let Some(_) = delay_list.iter().find(|x| (*x).task_name==cur.task_name) {
|
||||||
*iteration_counts.get_mut(&cur.task_name).unwrap()+=1;
|
*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 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);
|
let t = *iteration_counts.get(&cur.task_name).unwrap_or(&1);
|
||||||
// We don't care about the order
|
// We don't care about the order
|
||||||
ret.push(RefinedFreeRTOSSystemState {
|
ret.push(RefinedFreeRTOSSystemState {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user