Skip to main content

reifydb_testing/
network.rs

1// SPDX-License-Identifier: Apache-2.0
2// Copyright (c) 2026 ReifyDB
3
4use std::{net::SocketAddr, time::Instant};
5
6use reifydb_value::value::duration::Duration;
7
8pub fn busy_wait(f: impl Fn() -> Option<SocketAddr>) -> SocketAddr {
9	let mut socket_addr: Option<SocketAddr>;
10	#[allow(clippy::disallowed_methods)]
11	let start = Instant::now();
12	loop {
13		socket_addr = f();
14		if socket_addr.is_some() {
15			break;
16		}
17
18		if start.elapsed() > Duration::from_milliseconds(500).unwrap().to_std() {
19			panic!("failed to connect within 500ms")
20		}
21	}
22	socket_addr.take().unwrap()
23}