Pattern

Acquire/Release Ordering Mismatch

acquire-release-ordering-mismatch

Memory-ordering contracts break when CAS success/failure uses mismatched acquire/release semantics, so one thread observes stale state and the next loop iteration never synchronizes; results range from “code not executed” to miscompiled control thunks.