Building on #12, the parking_lot crate can theoretically give large performance and memory overhead wins over using the std sync primitives (for us right now, that's Mutex and RwLock). However, some of the differences include things like adding spinning, fairness, or hardware features, which can sometimes cause performance or correctness issues in Shadow. We should do some Shadow benchmarks if we want to try out this switch.
Building on #12, the [parking_lot crate](https://crates.io/crates/parking_lot) can theoretically give large performance and memory overhead wins over using the std sync primitives (for us right now, that's Mutex ~~and RwLock~~). However, some of the differences include things like adding spinning, fairness, or hardware features, which can sometimes cause performance or correctness issues in Shadow. We should do some Shadow benchmarks if we want to try out this switch.
Building on #12, the parking_lot crate can theoretically give large performance and memory overhead wins over using the std sync primitives (for us right now, that's Mutex
and RwLock). However, some of the differences include things like adding spinning, fairness, or hardware features, which can sometimes cause performance or correctness issues in Shadow. We should do some Shadow benchmarks if we want to try out this switch.