mirror of
https://github.com/IntQuant/noita_entangled_worlds.git
synced 2025-10-19 07:03:16 +00:00
Don't do excessive busy-waiting.
This commit is contained in:
parent
2ed8ce58e1
commit
ae50e35f63
2 changed files with 13 additions and 1 deletions
3
Justfile
3
Justfile
|
@ -16,6 +16,9 @@ build:
|
|||
run-rel: add_dylib_release
|
||||
cd noita-proxy && NP_APPID=480 NP_SKIP_MOD_CHECK=1 cargo run --release
|
||||
|
||||
flamegraph: add_dylib_debug
|
||||
cd noita-proxy && NP_APPID=480 NP_SKIP_MOD_CHECK=1 cargo flamegraph
|
||||
|
||||
run: add_dylib_debug
|
||||
cd noita-proxy && NP_APPID=480 NP_SKIP_MOD_CHECK=1 cargo run
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ use std::{
|
|||
net::{SocketAddr, TcpListener, TcpStream},
|
||||
sync::{atomic::AtomicBool, Arc, Mutex},
|
||||
thread,
|
||||
time::Duration,
|
||||
time::{Duration, Instant},
|
||||
};
|
||||
use tracing::debug;
|
||||
use world::{world_info::WorldInfo, NoitaWorldUpdate, WorldManager};
|
||||
|
@ -160,6 +160,8 @@ impl NetManager {
|
|||
world: WorldManager::new(self.is_host(), self.peer.my_id().unwrap()),
|
||||
};
|
||||
|
||||
let mut last_iter = Instant::now();
|
||||
|
||||
while self
|
||||
.continue_running
|
||||
.load(std::sync::atomic::Ordering::Relaxed)
|
||||
|
@ -271,6 +273,13 @@ impl NetManager {
|
|||
for update in updates {
|
||||
state.try_ws_write(ws_encode_proxy_bin(0, &update));
|
||||
}
|
||||
// Don't do excessive busy-waiting;
|
||||
let min_update_time = Duration::from_millis(1);
|
||||
let elapsed = last_iter.elapsed();
|
||||
if elapsed < min_update_time {
|
||||
thread::sleep(min_update_time - elapsed);
|
||||
}
|
||||
last_iter = Instant::now();
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue