On Sun, Jan 03, 2021 at 12:04:24AM +0200, Daniel Nitzan wrote: > In 15.5.1 (Alpha) - In regard to the following statement: "Yes, this > does mean that Alpha can in effect fetch the data pointed to before it > fetches the pointer itself, strange but true." > I'd appreciate it if someone could clarify what this means. I don't > understand this statement in light of the actual data-dependent > reordering presented in this section, i.e. the pointer itself is > fetched, points to the correct location in memory, but the data is > stale. Yes, your last statement is equivalent. Either way, the reading CPU sees the new value of the pointer and the old value of the pointed-to data. You can look at it either as counter-intuitive reordering (as I did) or as counter-intuitive stale data (as you did). The key point is that these values are not in a single location, but are instead replicated across the CPUs' caches. Stores are therefore not atomic unless the hardware goes to a lot of trouble to make them appear to be atomic. Thanx, Paul