Skip to content

Commit 8a8d43d

Browse files
authored
fix asset loader preregistration for multiple assets (#9453)
# Objective fix #9452 when multiple assets are queued to a preregistered loader, only one gets unblocked when the real loader is registered. ## Solution i thought async_channel receivers worked like broadcast channels, but in fact the notification is only received by a single receiver, so only a single waiting asset is unblocked. close the sender instead so that all blocked receivers are unblocked.
1 parent e2ed42f commit 8a8d43d

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

crates/bevy_asset/src/asset_server.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ impl AssetServer {
236236
loaders[existing_index] = MaybeAssetLoader::Ready(Arc::new(loader));
237237
if let Some(sender) = maybe_sender {
238238
// notify after replacing the loader
239-
let _ = sender.send_blocking(());
239+
let _ = sender.close();
240240
}
241241
} else {
242242
loaders.push(MaybeAssetLoader::Ready(Arc::new(loader)));

0 commit comments

Comments
 (0)