> GCC 4.2 compiles this to a no-op on x86: > > void foo() { > __sync_synchronize(); > } > > Are you seeing different behavior? What am I missing here? Maybe the processor does a memory barrier when it executes a call instruction. Ciao, Duncan.