Is Ordering::Relaxed really the relaxest memory order?
In Rust, atomic variable operations require an Ordering enum parameter as an argument
use std::sync::atomic::{AtomicI32, Ordering};
let x = AtomicI32::new(0);
x.store(42, Ordering::Relaxed);
let val = x.load(Ordering::Acquire);
The available orderings are:
RelaxedReleaseAcquireAcqRelSeqCst
However, I believe that even without Relaxed - which is considered the minimally tight ordering - there would be no problem guaranteeing the atomicity of atomic operations. Why isn't there an ordering that is even looser than Relaxed - one that only guarantees minimal atomicity without imposing any memory ordering constraints?