Function mz_ore::test::timeout

source ·
pub fn timeout<F, T>(duration: Duration, f: F) -> Result<T, Error>
where F: FnOnce() -> Result<T, Error> + Send + 'static, T: Send + 'static,
Available on test or crate feature test only.
Expand description

Runs a function with a timeout.

The provided closure is invoked on a thread. If the thread completes normally within the provided duration, its result is returned. If the thread panics within the provided duration, the panic is propagated to the thread calling timeout. Otherwise, a timeout error is returned.

Note that if the invoked function does not complete in the timeout, it is not killed; it is left to wind down normally. Therefore this function is only appropriate in tests, where the resource leak doesn’t matter.