still broken looping in lib-rs but marginally better so
parent
1cdefd1eca
commit
43e495ac6c
|
|
@ -73,10 +73,15 @@ impl Listener {
|
||||||
fn listen(self, mut cb: impl FnMut(Vec<f32>)) {
|
fn listen(self, mut cb: impl FnMut(Vec<f32>)) {
|
||||||
let (send, recv) = std::sync::mpsc::sync_channel(100);
|
let (send, recv) = std::sync::mpsc::sync_channel(100);
|
||||||
thread::spawn(move || { self._listen(send); });
|
thread::spawn(move || { self._listen(send); });
|
||||||
|
let mut signals = Signals::new(&[SIGINT]).unwrap();
|
||||||
loop {
|
loop {
|
||||||
match recv.recv_timeout(std::time::Duration::new(1, 0)) {
|
match recv.recv_timeout(std::time::Duration::new(1, 0)) {
|
||||||
Ok(msg) => cb(msg),
|
Ok(msg) => cb(msg),
|
||||||
Err(_) => break,
|
Err(_) => {
|
||||||
|
if signals.pending().count() > 0 {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue