fix release-resposne matching bug

This commit is contained in:
Alwin Berger 2024-08-30 14:02:21 +02:00
parent a613a803ca
commit 06b523fb9f

View File

@ -306,6 +306,7 @@ fn get_release_response_pairs(rel: &Vec<(u64, String)>, resp: &Vec<(u64, String)
let mut d = resp.iter().peekable(); let mut d = resp.iter().peekable();
loop { loop {
while let Some(peek_rel) = r.peek() { while let Some(peek_rel) = r.peek() {
// Fill releases as soon as possible
if !ready.contains_key(&peek_rel.1) { if !ready.contains_key(&peek_rel.1) {
ready.insert(&peek_rel.1, peek_rel.0); ready.insert(&peek_rel.1, peek_rel.0);
r.next(); r.next();
@ -316,10 +317,15 @@ fn get_release_response_pairs(rel: &Vec<(u64, String)>, resp: &Vec<(u64, String)
eprintln!("Task {} released multiple times before response ({}ms and {}ms)", peek_rel.1, crate::time::clock::tick_to_time(ready[&peek_rel.1]).as_millis(), crate::time::clock::tick_to_time(peek_rel.0).as_millis()); eprintln!("Task {} released multiple times before response ({}ms and {}ms)", peek_rel.1, crate::time::clock::tick_to_time(ready[&peek_rel.1]).as_millis(), crate::time::clock::tick_to_time(peek_rel.0).as_millis());
// ready.insert(&peek_rel.1, peek_rel.0); // ready.insert(&peek_rel.1, peek_rel.0);
r.next(); r.next();
} } else {
} // releases have overtaken responses, wait until the ready list clears up a bit
break; break;
} }
} else {
// no more responses
break;
}
}
} }
if let Some(next_resp) = d.next() { if let Some(next_resp) = d.next() {
if ready.contains_key(&next_resp.1) { if ready.contains_key(&next_resp.1) {