Compare commits

...

1 Commits

Author SHA1 Message Date
c4cd7cdc79
fix timeout = None causing an instant timeout err 2020-04-05 19:47:28 +02:00

View File

@ -33,25 +33,23 @@ pub fn request_multiple_devices<
let interval = Duration::from_millis(10); let interval = Duration::from_millis(10);
let mut received = 0usize; let mut received = 0usize;
let res = loop { 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 { break if let Some(cause) = err {
cause cause
} else { } else {
Err(FidoErrorKind::Timeout.into()) 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) { if let Ok(msg) = rx.recv_timeout(interval) {
received += 1; received += 1;
match msg { match msg {
e @ Err(_) => { e @ Err(_) if received == handles.len() => break e,
err = Some(e); e @ Err(_) => err = Some(e),
} res @ Ok(_) => break res,
res @ Ok(_) => {
break res;
}
} }
} else { } else {
slept += interval; slept += interval;