mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Spawn fewer slowjob tasks.
This commit is contained in:
parent
3ba53b3e4c
commit
61d1c27605
@ -2415,13 +2415,20 @@ impl Client {
|
|||||||
}
|
}
|
||||||
self.handle_server_in_game_msg(frontend_events, bincode::deserialize(&msg.decompress()?)?)?;
|
self.handle_server_in_game_msg(frontend_events, bincode::deserialize(&msg.decompress()?)?)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Batch up terrain updates for deserialization.
|
||||||
|
let mut terrain_messages = Vec::new();
|
||||||
while let Some(msg) = self.terrain_stream.try_recv_raw()? {
|
while let Some(msg) = self.terrain_stream.try_recv_raw()? {
|
||||||
cnt += 1;
|
terrain_messages.push(msg);
|
||||||
|
}
|
||||||
|
if !terrain_messages.is_empty() {
|
||||||
|
cnt += terrain_messages.len() as u64;
|
||||||
let terrain_tx = self.terrain_tx.clone();
|
let terrain_tx = self.terrain_tx.clone();
|
||||||
self
|
self
|
||||||
.state
|
.state
|
||||||
.slow_job_pool()
|
.slow_job_pool()
|
||||||
.spawn("TERRAIN_DESERIALIZING", move || {
|
.spawn("TERRAIN_DESERIALIZING", move || {
|
||||||
|
terrain_messages.into_iter().for_each(|msg| {
|
||||||
let handle_msg = || {
|
let handle_msg = || {
|
||||||
let msg = msg.decompress()?;
|
let msg = msg.decompress()?;
|
||||||
let msg = bincode::deserialize(&msg)?;
|
let msg = bincode::deserialize(&msg)?;
|
||||||
@ -2429,7 +2436,9 @@ impl Client {
|
|||||||
};
|
};
|
||||||
terrain_tx.send(handle_msg());
|
terrain_tx.send(handle_msg());
|
||||||
});
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
while let Ok(msg) = self.terrain_rx.try_recv() {
|
while let Ok(msg) = self.terrain_rx.try_recv() {
|
||||||
let msg = msg?;
|
let msg = msg?;
|
||||||
#[cfg(feature = "tracy")]
|
#[cfg(feature = "tracy")]
|
||||||
|
Loading…
Reference in New Issue
Block a user