Skip to content

Commit 6d35e22

Browse files
committed
Reimplemented GatedReader to be async.
1 parent 86d837d commit 6d35e22

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

crates/bevy_asset/Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,9 @@ bevy_reflect = { path = "../bevy_reflect", version = "0.17.0-dev", default-featu
9191
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
9292
notify-debouncer-full = { version = "0.5.0", default-features = false, optional = true }
9393

94+
[dev-dependencies]
95+
async-channel = "2"
96+
9497
[lints]
9598
workspace = true
9699

crates/bevy_asset/src/io/gated.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use crate::io::{AssetReader, AssetReaderError, PathStream, Reader};
22
use alloc::{boxed::Box, sync::Arc};
3+
use async_channel::{Receiver, Sender};
34
use bevy_platform::collections::HashMap;
4-
use crossbeam_channel::{Receiver, Sender};
55
use parking_lot::RwLock;
66
use std::path::Path;
77

@@ -35,8 +35,8 @@ impl GateOpener {
3535
let mut gates = self.gates.write();
3636
let gates = gates
3737
.entry_ref(path.as_ref())
38-
.or_insert_with(crossbeam_channel::unbounded);
39-
gates.0.send(()).unwrap();
38+
.or_insert_with(async_channel::unbounded);
39+
gates.0.send_blocking(()).unwrap();
4040
}
4141
}
4242

@@ -61,10 +61,10 @@ impl<R: AssetReader> AssetReader for GatedReader<R> {
6161
let mut gates = self.gates.write();
6262
let gates = gates
6363
.entry_ref(path.as_ref())
64-
.or_insert_with(crossbeam_channel::unbounded);
64+
.or_insert_with(async_channel::unbounded);
6565
gates.1.clone()
6666
};
67-
receiver.recv().unwrap();
67+
receiver.recv().await.unwrap();
6868
let result = self.reader.read(path).await?;
6969
Ok(result)
7070
}

0 commit comments

Comments
 (0)