mirror of
https://github.com/bevyengine/bevy
synced 2024-12-22 19:13:08 +00:00
450328d15e
# Objective - Fixes #4610 ## Solution - Replaced all instances of `parking_lot` locks with equivalents from `std::sync`. Acquiring locks within `std::sync` can fail, so `.expect("Lock Poisoned")` statements were added where required. ## Comments In [this comment](https://github.com/bevyengine/bevy/issues/4610#issuecomment-1592407881), the lack of deadlock detection was mentioned as a potential reason to not make this change. From what I can gather, Bevy doesn't appear to be using this functionality within the engine. Unless it was expected that a Bevy consumer was expected to enable and use this functionality, it appears to be a feature lost without consequence. Unfortunately, `cpal` and `wgpu` both still rely on `parking_lot`, leaving it in the dependency graph even after this change. From my basic experimentation, this change doesn't appear to have any performance impacts, positive or negative. I tested this using `bevymark` with 50,000 entities and observed 20ms of frame-time before and after the change. More extensive testing with larger/real projects should probably be done.
45 lines
1.6 KiB
TOML
45 lines
1.6 KiB
TOML
[package]
|
|
name = "bevy_audio"
|
|
version = "0.12.0-dev"
|
|
edition = "2021"
|
|
description = "Provides audio functionality for Bevy Engine"
|
|
homepage = "https://bevyengine.org"
|
|
repository = "https://github.com/bevyengine/bevy"
|
|
license = "MIT OR Apache-2.0"
|
|
keywords = ["bevy"]
|
|
|
|
[dependencies]
|
|
# bevy
|
|
bevy_app = { path = "../bevy_app", version = "0.12.0-dev" }
|
|
bevy_asset = { path = "../bevy_asset", version = "0.12.0-dev" }
|
|
bevy_ecs = { path = "../bevy_ecs", version = "0.12.0-dev" }
|
|
bevy_math = { path = "../bevy_math", version = "0.12.0-dev" }
|
|
bevy_reflect = { path = "../bevy_reflect", version = "0.12.0-dev", features = ["bevy"] }
|
|
bevy_transform = { path = "../bevy_transform", version = "0.12.0-dev" }
|
|
bevy_derive = { path = "../bevy_derive", version = "0.12.0-dev" }
|
|
bevy_utils = { path = "../bevy_utils", version = "0.12.0-dev" }
|
|
|
|
# other
|
|
rodio = { version = "0.17", default-features = false }
|
|
|
|
[target.'cfg(target_os = "android")'.dependencies]
|
|
oboe = { version = "0.5", optional = true }
|
|
|
|
[target.'cfg(target_arch = "wasm32")'.dependencies]
|
|
rodio = { version = "0.17", default-features = false, features = ["wasm-bindgen"] }
|
|
|
|
|
|
[features]
|
|
mp3 = ["rodio/mp3"]
|
|
flac = ["rodio/flac"]
|
|
wav = ["rodio/wav"]
|
|
vorbis = ["rodio/vorbis"]
|
|
minimp3 = ["rodio/minimp3"]
|
|
symphonia-aac = ["rodio/symphonia-aac"]
|
|
symphonia-all = ["rodio/symphonia-all"]
|
|
symphonia-flac = ["rodio/symphonia-flac"]
|
|
symphonia-isomp4 = ["rodio/symphonia-isomp4"]
|
|
symphonia-vorbis = ["rodio/symphonia-vorbis"]
|
|
symphonia-wav = ["rodio/symphonia-wav"]
|
|
# Enable using a shared stdlib for cxx on Android.
|
|
android_shared_stdcxx = ["oboe/shared-stdcxx"]
|