From fb45ec223395a7291085540d000a253df9000e8d Mon Sep 17 00:00:00 2001 From: Hartmut Seichter Date: Tue, 31 Jan 2023 10:52:09 +0100 Subject: [PATCH] start moving over to crossbeam --- Cargo.lock | 64 +++++++++++++++++++++++++++++++++++++++++++++++--- Cargo.toml | 1 + src/tracker.rs | 13 ++++------ 3 files changed, 67 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 64b276e..67c2482 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1238,6 +1238,20 @@ dependencies = [ "cfg-if 1.0.0", ] +[[package]] +name = "crossbeam" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-channel", + "crossbeam-deque 0.8.2", + "crossbeam-epoch 0.9.13", + "crossbeam-queue 0.3.8", + "crossbeam-utils 0.8.14", +] + [[package]] name = "crossbeam-channel" version = "0.5.6" @@ -1254,11 +1268,22 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c20ff29ded3204c5106278a81a38f4b482636ed4fa1e6cfbeef193291beb29ed" dependencies = [ - "crossbeam-epoch", + "crossbeam-epoch 0.8.2", "crossbeam-utils 0.7.2", "maybe-uninit", ] +[[package]] +name = "crossbeam-deque" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-epoch 0.9.13", + "crossbeam-utils 0.8.14", +] + [[package]] name = "crossbeam-epoch" version = "0.8.2" @@ -1274,6 +1299,19 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "crossbeam-epoch" +version = "0.9.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" +dependencies = [ + "autocfg 1.1.0", + "cfg-if 1.0.0", + "crossbeam-utils 0.8.14", + "memoffset 0.7.1", + "scopeguard", +] + [[package]] name = "crossbeam-queue" version = "0.2.3" @@ -1285,6 +1323,16 @@ dependencies = [ "maybe-uninit", ] +[[package]] +name = "crossbeam-queue" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-utils 0.8.14", +] + [[package]] name = "crossbeam-utils" version = "0.7.2" @@ -2203,6 +2251,15 @@ dependencies = [ "autocfg 1.1.0", ] +[[package]] +name = "memoffset" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +dependencies = [ + "autocfg 1.1.0", +] + [[package]] name = "metal" version = "0.24.0" @@ -2702,6 +2759,7 @@ version = "0.1.0" dependencies = [ "bevy", "bytes 0.4.12", + "crossbeam", "rand 0.8.5", "vrpn", ] @@ -3503,8 +3561,8 @@ version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89" dependencies = [ - "crossbeam-deque", - "crossbeam-queue", + "crossbeam-deque 0.7.4", + "crossbeam-queue 0.2.3", "crossbeam-utils 0.7.2", "futures", "lazy_static", diff --git a/Cargo.toml b/Cargo.toml index 4815728..eec0b6d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,6 +14,7 @@ rand = "0.8.4" # vrpn = "0.1.0" # not compatible with 2021 vrpn = { git = "https://github.com/seichter/vrpn-rs" } bytes = "0.4.12" +crossbeam = "0.8.2" [profile.release] opt-level = 3 \ No newline at end of file diff --git a/src/tracker.rs b/src/tracker.rs index 806f79c..8eeb5c2 100644 --- a/src/tracker.rs +++ b/src/tracker.rs @@ -3,6 +3,7 @@ use bevy::prelude::*; extern crate bytes; extern crate vrpn; +extern crate crossbeam; // use futures_lite::future; use rand::Rng; @@ -28,22 +29,18 @@ use vrpn::{ TypedBodylessHandler, Unbuffer, }; -#[derive(Resource, Debug, Sync)] -pub struct Tracker { rx : Receiver } +#[derive(Resource, Debug)] +pub struct Tracker; impl FromWorld for Tracker { fn from_world(world: &mut World) -> Self { info!("Test here!"); - let (sender, receiver): (_, Receiver) = channel(); - - let sender_th = sender.clone(); - std::thread::spawn(move || { // 212.201.64.122 | 127.0.0.1 - let addr: SocketAddr = "127.0.0.1:3883".parse().unwrap(); + let addr: SocketAddr = "212.201.64.122:3883".parse().unwrap(); let mut stream = TcpStream::connect(addr).unwrap(); stream.set_nodelay(true).unwrap(); @@ -102,6 +99,6 @@ impl FromWorld for Tracker { } }); - Self { rx = receiver.clone() } + Self { } } }