mirror of
https://github.com/rust-lang/rust.git
synced 2025-05-14 02:49:40 +00:00
![]() Remove restrictions on compare-exchange memory ordering. We currently don't allow the failure memory ordering of compare-exchange operations to be stronger than the success ordering, as was the case in C++11 when its memory model was copied to Rust. However, this restriction was lifted in C++17 as part of [p0418r2](https://wg21.link/p0418r2). It's time we lift the restriction too. | Success | Failure | Before | After | |---------|---------|--------|-------| | Relaxed | Relaxed | ✔️ | ✔️ | | Relaxed | Acquire | ❌ | ✔️ | | Relaxed | SeqCst | ❌ | ✔️ | | Acquire | Relaxed | ✔️ | ✔️ | | Acquire | Acquire | ✔️ | ✔️ | | Acquire | SeqCst | ❌ | ✔️ | | Release | Relaxed | ✔️ | ✔️ | | Release | Acquire | ❌ | ✔️ | | Release | SeqCst | ❌ | ✔️ | | AcqRel | Relaxed | ✔️ | ✔️ | | AcqRel | Acquire | ✔️ | ✔️ | | AcqRel | SeqCst | ❌ | ✔️ | | SeqCst | Relaxed | ✔️ | ✔️ | | SeqCst | Acquire | ✔️ | ✔️ | | SeqCst | SeqCst | ✔️ | ✔️ | | \* | Release | ❌ | ❌ | | \* | AcqRel | ❌ | ❌ | Fixes https://github.com/rust-lang/rust/issues/68464 |
||
---|---|---|
.. | ||
benches | ||
primitive_docs | ||
src | ||
tests | ||
Cargo.toml |