fix(input): avoid capture order race condition

This commit is contained in:
Nova
2022-10-10 20:45:53 -04:00
parent aee4a7f916
commit 4659c00a55

View File

@@ -261,14 +261,17 @@ pub fn process_input() {
let datamap = method.serialize_datamap();
let frame = FRAME.load(Ordering::Relaxed);
let captures = method.captures.get_valid_contents();
let mut last_distance = 0.0;
for distance_link in distance_links {
distance_link.send_input(frame, &datamap);
if captures
.iter()
.any(|c| Arc::ptr_eq(c, &distance_link.handler))
if last_distance != distance_link.distance
&& captures
.iter()
.any(|c| Arc::ptr_eq(c, &distance_link.handler))
{
break;
}
last_distance = distance_link.distance;
}
method.captures.clear();
}