Expand description
Instrumented lock types.
This module defines a set of instrumented wrappers for the lock
types used in wgpu-core
(Mutex
, RwLock
, and
SnatchLock
) that help us understand and validate wgpu-core
synchronization.
-
The
ranked
module defines lock types that perform run-time checks to ensure that each thread acquires locks only in a specific order, to prevent deadlocks. -
The [
observing
] module defines lock types that recordwgpu-core
’s lock acquisition activity to disk, for later analysis by thelock-analyzer
binary. -
The
vanilla
module defines lock types that are uninstrumented, no-overhead wrappers around the standard lock types.
If the wgpu_validate_locks
config is set (for example, with
RUSTFLAGS='--cfg wgpu_validate_locks'
), wgpu-core
uses the
ranked
module’s locks. We hope to make this the default for
debug builds soon.
If the observe_locks
feature is enabled, wgpu-core
uses the
[observing
] module’s locks.
Otherwise, wgpu-core
uses the vanilla
module’s locks.
Re-exports§
pub use chosen::Mutex;
pub use chosen::MutexGuard;
pub use chosen::RwLock;
pub use chosen::RwLockReadGuard;
pub use chosen::RwLockWriteGuard;
Modules§
- Ranks for
wgpu-core
locks, restricting acquisition order. - ranked 🔒Lock types that enforce well-ranked lock acquisition order.
- vanilla 🔒Plain, uninstrumented wrappers around
parking_lot
lock types.