// adapted from ghc/includes/stg/SMP.h static __inline__ void _pause(void) { #if defined(i386_HOST_ARCH) || defined(x86_64_HOST_ARCH) // On Intel, the busy-wait-nop instruction is called "pause", // which is actually represented as a nop with the rep prefix. // On processors before the P4 this behaves as a nop; on P4 and // later it might do something clever like yield to another // hyperthread. In any case, Intel recommends putting one // of these in a spin lock loop. __asm__ __volatile__ ("rep; nop"); #else // nothing #endif }