Added
- The minimum supported Rust version is now defined as 1.70. Previously it was undefined.
- Wrappers for
std::sync
primitives can now be const constructed. - Add support for
std::sync::OnceLock
- Added backtraces of mutex allocations to the cycle report. Capturing backtraces does incur some overhead, this can be mitigated by disabling the backtraces feature which is enabled by default.
Breaking
- Update parking_lot dependency to 0.12.
- Restructured the crate to reduce typename verbosity. Wrapper names now match the name of the primitive they wrap. Specific always/debug tracing versions have now moved to separate modules. For example,
tracing_mutex::stdsync::TracingMutex
is nowtracing_mutex::stdsync::tracing::Mutex
, andtracing_mutex::stdsync::DebugMutex
is now calledtracing_mutex::stdsync::Mutex
. This hopefully reduces the visual noise while reading code that uses this in practice. Unwrapped primitives are reexported undertracing_mutex::stdsync::raw
for convenience.
Fixed
- Enforce that all internal mutex guards are
!Send
. They already should be according to other reasons, but this adds extra security through the type system.