battery/gpu: Fix freezing after udev-event

This commit is contained in:
Victoria Brekenfeld 2024-02-06 18:26:27 +01:00
parent 1ad07dc2f3
commit ee04d486fa

View file

@ -412,7 +412,8 @@ async fn start_listening(
.map(|(_, i, _)| i); .map(|(_, i, _)| i);
tokio::select! { tokio::select! {
_guard = monitor.monitor.readable() => { guard = monitor.monitor.readable() => {
if let Ok(mut guard) = guard {
for event in monitor.monitor.get_ref().0.iter() { for event in monitor.monitor.get_ref().0.iter() {
match event.event_type() { match event.event_type() {
// New device // New device
@ -473,6 +474,11 @@ async fn start_listening(
_ => {}, _ => {},
} }
} }
guard.clear_ready_matching(tokio::io::Ready::READABLE);
} else {
return State::Finished;
}
} }
i = select_all => { i = select_all => {
let gpu = &mut monitor.gpus[i]; let gpu = &mut monitor.gpus[i];