Skip to main content

reifydb_testing/
network.rs

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