async-rs/async-std

`future::timeout` panics when provided with large timeouts

patrickfreed opened this issue · 2 comments

The async_std::future::timeout function panics if a large duration is provided. This should either be documented as a possible panic conditon or changed to no longer panic.

Repro:

#[async_std::main]
async fn main() -> anyhow::Result<()> {
    async_std::future::timeout(Duration::MAX, async {}).await;
    Ok(())
}

Looks like the cause is an unchecked add in smol: https://github.com/smol-rs/async-io/blob/master/src/lib.rs#L162

It seems like this was fixed upstream in async-io - smol-rs/async-io#87 - pending a release of that crate.

With the newest release of async-io, this issue should be fixed now.