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");

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…