fix timeout = None causing an instant timeout err
This commit is contained in:
parent
addc251418
commit
80c175077f
16
src/util.rs
16
src/util.rs
@ -33,25 +33,23 @@ pub fn request_multiple_devices<
|
||||
let interval = Duration::from_millis(10);
|
||||
let mut received = 0usize;
|
||||
let res = loop {
|
||||
if timeout.map(|t| t < slept).unwrap_or(true) {
|
||||
match timeout {
|
||||
Some(t) if t < slept => {
|
||||
break if let Some(cause) = err {
|
||||
cause
|
||||
} else {
|
||||
Err(FidoErrorKind::Timeout.into())
|
||||
};
|
||||
}
|
||||
if received == handles.len() {
|
||||
break err.unwrap();
|
||||
_ => (),
|
||||
}
|
||||
if timeout.map(|t| t < slept).unwrap_or(true) {}
|
||||
if let Ok(msg) = rx.recv_timeout(interval) {
|
||||
received += 1;
|
||||
match msg {
|
||||
e @ Err(_) => {
|
||||
err = Some(e);
|
||||
}
|
||||
res @ Ok(_) => {
|
||||
break res;
|
||||
}
|
||||
e @ Err(_) if received == handles.len() => break e,
|
||||
e @ Err(_) => err = Some(e),
|
||||
res @ Ok(_) => break res,
|
||||
}
|
||||
} else {
|
||||
slept += interval;
|
||||
|
Loading…
x
Reference in New Issue
Block a user