v0.3.0
Added
- The minimum supported Rust version is now defined as 1.70. Previously it was undefined.
- Wrappers for
std::syncprimitives 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::TracingMutexis nowtracing_mutex::stdsync::tracing::Mutex, andtracing_mutex::stdsync::DebugMutexis 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::rawfor 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.