INNER CODE UNIT · Rust
retry
openebs/mayastor · io-engine-tests/src/lib.rs:45
pub fn retry<F, T, E>(mut cnt: u32, timeout: Duration, mut f: F) -> T
where
F: FnMut() -> Result<T, E>,
E: std::fmt::Debug,
{
loop {
cnt -= 1;
if let Ok(result) = f() {
return result;
}
if cnt == 0 {
break;
}
std::thread::sleep(timeout);
}
panic!("failed operation with retries");