start moving over to crossbeam

This commit is contained in:
Hartmut Seichter 2023-01-31 10:52:09 +01:00
parent f3f995815b
commit fb45ec2233
3 changed files with 67 additions and 11 deletions

64
Cargo.lock generated
View file

@ -1238,6 +1238,20 @@ dependencies = [
"cfg-if 1.0.0", "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]] [[package]]
name = "crossbeam-channel" name = "crossbeam-channel"
version = "0.5.6" version = "0.5.6"
@ -1254,11 +1268,22 @@ version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c20ff29ded3204c5106278a81a38f4b482636ed4fa1e6cfbeef193291beb29ed" checksum = "c20ff29ded3204c5106278a81a38f4b482636ed4fa1e6cfbeef193291beb29ed"
dependencies = [ dependencies = [
"crossbeam-epoch", "crossbeam-epoch 0.8.2",
"crossbeam-utils 0.7.2", "crossbeam-utils 0.7.2",
"maybe-uninit", "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]] [[package]]
name = "crossbeam-epoch" name = "crossbeam-epoch"
version = "0.8.2" version = "0.8.2"
@ -1274,6 +1299,19 @@ dependencies = [
"scopeguard", "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]] [[package]]
name = "crossbeam-queue" name = "crossbeam-queue"
version = "0.2.3" version = "0.2.3"
@ -1285,6 +1323,16 @@ dependencies = [
"maybe-uninit", "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]] [[package]]
name = "crossbeam-utils" name = "crossbeam-utils"
version = "0.7.2" version = "0.7.2"
@ -2203,6 +2251,15 @@ dependencies = [
"autocfg 1.1.0", "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]] [[package]]
name = "metal" name = "metal"
version = "0.24.0" version = "0.24.0"
@ -2702,6 +2759,7 @@ version = "0.1.0"
dependencies = [ dependencies = [
"bevy", "bevy",
"bytes 0.4.12", "bytes 0.4.12",
"crossbeam",
"rand 0.8.5", "rand 0.8.5",
"vrpn", "vrpn",
] ]
@ -3503,8 +3561,8 @@ version = "0.1.18"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89" checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89"
dependencies = [ dependencies = [
"crossbeam-deque", "crossbeam-deque 0.7.4",
"crossbeam-queue", "crossbeam-queue 0.2.3",
"crossbeam-utils 0.7.2", "crossbeam-utils 0.7.2",
"futures", "futures",
"lazy_static", "lazy_static",

View file

@ -14,6 +14,7 @@ rand = "0.8.4"
# vrpn = "0.1.0" # not compatible with 2021 # vrpn = "0.1.0" # not compatible with 2021
vrpn = { git = "https://github.com/seichter/vrpn-rs" } vrpn = { git = "https://github.com/seichter/vrpn-rs" }
bytes = "0.4.12" bytes = "0.4.12"
crossbeam = "0.8.2"
[profile.release] [profile.release]
opt-level = 3 opt-level = 3

View file

@ -3,6 +3,7 @@ use bevy::prelude::*;
extern crate bytes; extern crate bytes;
extern crate vrpn; extern crate vrpn;
extern crate crossbeam;
// use futures_lite::future; // use futures_lite::future;
use rand::Rng; use rand::Rng;
@ -28,22 +29,18 @@ use vrpn::{
TypedBodylessHandler, Unbuffer, TypedBodylessHandler, Unbuffer,
}; };
#[derive(Resource, Debug, Sync)] #[derive(Resource, Debug)]
pub struct Tracker { rx : Receiver<PoseReport> } pub struct Tracker;
impl FromWorld for Tracker { impl FromWorld for Tracker {
fn from_world(world: &mut World) -> Self { fn from_world(world: &mut World) -> Self {
info!("Test here!"); info!("Test here!");
let (sender, receiver): (_, Receiver<PoseReport>) = channel();
let sender_th = sender.clone();
std::thread::spawn(move || { std::thread::spawn(move || {
// 212.201.64.122 | 127.0.0.1 // 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(); let mut stream = TcpStream::connect(addr).unwrap();
stream.set_nodelay(true).unwrap(); stream.set_nodelay(true).unwrap();
@ -102,6 +99,6 @@ impl FromWorld for Tracker {
} }
}); });
Self { rx = receiver.clone() } Self { }
} }
} }