Why use my_atomic_store32 ?
As I understood idea of atomic operation it is guaranted that we will
read consistent value (not one byte from one value and other one from
other). Yes I remember your statement that on modern 32bit system
you
always get it consistent, then why we made atomic operations at all?
Because my_atomic_store32() also adds a full memory barrier to the
atomic store operation. That is, if you do
my_atomic_store32(&a, 1);
my_atomic_store32(&b, 2);
and then in another thread
if (my_atomic_load32(&b) == 2)
{
...
here you can be sure that a==1, because a=1 was executed before
b=2. And neither compiler nor the cpu swapped two assignments.
}