From 593deb828b17d0a05fc98b2f0e4565776131acf9 Mon Sep 17 00:00:00 2001 From: Acrimon Date: Fri, 16 Aug 2019 00:10:46 +0200 Subject: [PATCH] [Server] Switched mpsc for crossbeam::channel. --- Cargo.lock | 1 + server/Cargo.toml | 1 + server/src/lib.rs | 14 +++++--------- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 655f58237b..6354693b7c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2970,6 +2970,7 @@ name = "veloren-server" version = "0.3.0" dependencies = [ "chrono 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", "hashbrown 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/server/Cargo.toml b/server/Cargo.toml index c9dbb40257..2affc8e118 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -20,3 +20,4 @@ serde_derive = "1.0.98" rand = "0.7.0" chrono = "0.4.7" hashbrown = { version = "0.5.0", features = ["serde", "nightly"] } +crossbeam = "0.7.2" diff --git a/server/src/lib.rs b/server/src/lib.rs index e7a44c5930..84b4db8071 100644 --- a/server/src/lib.rs +++ b/server/src/lib.rs @@ -25,16 +25,12 @@ use common::{ vol::Vox, vol::{ReadVol, VolSize}, }; +use crossbeam::channel; use hashbrown::HashSet; use log::debug; use rand::Rng; use specs::{join::Join, world::EntityBuilder as EcsEntityBuilder, Builder, Entity as EcsEntity}; -use std::{ - i32, - net::SocketAddr, - sync::{mpsc, Arc}, - time::Duration, -}; +use std::{i32, net::SocketAddr, sync::Arc, time::Duration}; use uvth::{ThreadPool, ThreadPoolBuilder}; use vek::*; use world::{ChunkSupplement, World}; @@ -65,8 +61,8 @@ pub struct Server { clients: Clients, thread_pool: ThreadPool, - chunk_tx: mpsc::Sender<(Vec2, (TerrainChunk, ChunkSupplement))>, - chunk_rx: mpsc::Receiver<(Vec2, (TerrainChunk, ChunkSupplement))>, + chunk_tx: channel::Sender<(Vec2, (TerrainChunk, ChunkSupplement))>, + chunk_rx: channel::Receiver<(Vec2, (TerrainChunk, ChunkSupplement))>, pending_chunks: HashSet>, server_settings: ServerSettings, @@ -84,7 +80,7 @@ impl Server { /// Create a new server bound to the given socket. pub fn bind>(addrs: A, settings: ServerSettings) -> Result { - let (chunk_tx, chunk_rx) = mpsc::channel(); + let (chunk_tx, chunk_rx) = channel::unbounded(); let mut state = State::default(); state