reifydb_testing/network.rs
1// SPDX-License-Identifier: Apache-2.0
2// Copyright (c) 2025 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}