usync
usync copied to clipboard
Small, fast, synchronization primitives
The `COUNT_SHIFT` was incorrectly `0` when it should have been `1` to shift out the `QUEUED` bit. This led to the initial barrier count being treated as a `*const Waiter`...
`Mutex`, `RwLock` and `CondVar` are const-constructible in `std` since [Rust 1.63](https://blog.rust-lang.org/2022/08/11/Rust-1.63.0.html#const-mutex-rwlock-condvar-initialization). In most platforms `pthread` locks have been replaced with ones that do not allocate. Maybe it should be noted...
CI has been failing for a while due to various workarounds which don't seem needed anymore. Also took this opportunity to spin with WFE on `aarch64` and replaced exponential backoff...