mirror of
https://github.com/bevyengine/bevy
synced 2025-01-06 10:18:59 +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.
50 lines
1.4 KiB
TOML
50 lines
1.4 KiB
TOML
[package]
|
|
name = "bevy_reflect"
|
|
version = "0.12.0-dev"
|
|
edition = "2021"
|
|
description = "Dynamically interact with rust types"
|
|
homepage = "https://bevyengine.org"
|
|
repository = "https://github.com/bevyengine/bevy"
|
|
license = "MIT OR Apache-2.0"
|
|
keywords = ["bevy"]
|
|
readme = "README.md"
|
|
|
|
[features]
|
|
default = []
|
|
# When enabled, provides Bevy-related reflection implementations
|
|
bevy = ["glam", "smallvec", "bevy_math", "smol_str"]
|
|
# When enabled, allows documentation comments to be accessed via reflection
|
|
documentation = ["bevy_reflect_derive/documentation"]
|
|
|
|
[dependencies]
|
|
# bevy
|
|
bevy_math = { path = "../bevy_math", version = "0.12.0-dev", features = [
|
|
"serialize",
|
|
], optional = true }
|
|
bevy_reflect_derive = { path = "bevy_reflect_derive", version = "0.12.0-dev" }
|
|
bevy_utils = { path = "../bevy_utils", version = "0.12.0-dev" }
|
|
bevy_ptr = { path = "../bevy_ptr", version = "0.12.0-dev" }
|
|
|
|
# other
|
|
erased-serde = "0.3"
|
|
downcast-rs = "1.2"
|
|
thiserror = "1.0"
|
|
once_cell = "1.11"
|
|
serde = "1"
|
|
smallvec = { version = "1.6", features = [
|
|
"serde",
|
|
"union",
|
|
"const_generics",
|
|
], optional = true }
|
|
glam = { version = "0.24.1", features = ["serde"], optional = true }
|
|
smol_str = { version = "0.2.0", optional = true }
|
|
|
|
[dev-dependencies]
|
|
ron = "0.8.0"
|
|
rmp-serde = "1.1"
|
|
bincode = "1.3"
|
|
|
|
[[example]]
|
|
name = "reflect_docs"
|
|
path = "examples/reflect_docs.rs"
|
|
required-features = ["documentation"]
|