Mountain/Vine/Client/
WaitForClientConnection.rs1#![allow(non_snake_case)]
2
3use std::time::{Duration, Instant};
8
9use crate::Vine::Client::{IsClientConnected, IsShuttingDown};
10
11pub async fn Fn(SideCarIdentifier:&str, BudgetMilliseconds:u64) -> bool {
12 if IsClientConnected::Fn(SideCarIdentifier) {
13 return true;
14 }
15 let Deadline = Instant::now() + Duration::from_millis(BudgetMilliseconds);
16 while Instant::now() < Deadline {
17 tokio::time::sleep(Duration::from_millis(50)).await;
18 if IsClientConnected::Fn(SideCarIdentifier) {
19 return true;
20 }
21 if IsShuttingDown::Fn() {
22 return false;
23 }
24 }
25 IsClientConnected::Fn(SideCarIdentifier)
26}