Prerelease This site documents an alpha of libtmux. Its structure, URLs and APIs are subject to change.

test.retry_until

Rust
  • Python Unavailable
  • Ruby Unavailable
  • Lua Unavailable
  • TypeScript Unavailable
  • Rust
  • Go Unavailable
  • Java Unavailable
  • .NET Unavailable
  • C++ Unavailable
  • Swift Unavailable

View as Markdown

Module
test
Package
libtmux
Source
crates/libtmux/src/test.rs
retry_until ( within : Duration , condition : impl AsyncFnMut() -> bool ) → Result<(), RetryTimeout>
function [source]
function [source]
retry_until

Poll until a condition holds, or the deadline passes.

tmux applies most changes asynchronously, so a test that reads straight back can observe the state before the change. This waits for the state the test is about rather than sleeping a fixed amount, which is both faster and not tied to how loaded the machine is.

Errors

Returns RetryTimeout when the condition did not hold before the deadline. The condition's own errors are its business; return false to keep waiting.

Examples

use std::time::Duration;
use libtmux::test::retry_until;
let mut polls = 0;
retry_until(Duration::from_secs(5), async || {
polls += 1;
polls >= 3
})
.await?;
assert_eq!(polls, 3);

Discussed in Sending keys , Testing with libtmux · Pane interaction , Waiting and retrying

0 declared, 0 inherited

Esc

Type to search.