On Friday 16 May 2008 08:05:41 am Paulo Marques wrote:
[...]
Contrary to what you might expect, that my_flag access isn't being
protected by the cli/sei pair, and might be reordered by the compiler
(and "might" here means "it has happened", not some theoretical scenario).
Currently, the official way of doing something like that is using the
macros provided in <util/atomic.h>.
Wow. I think the cli()/sei() construct is used fairly
universally, and it's also in the avr-libc docs.
What gives ATOMIC_BLOCK() it's special immunity? The memory
clobber?