38#ifndef BLOCXX_MEMORY_BARRIER_HPP_INCLUDE_GUARD_
39#define BLOCXX_MEMORY_BARRIER_HPP_INCLUDE_GUARD_
40#include "blocxx/BLOCXX_config.h"
56 __asm__ __volatile__(
"mb");
58 #elif defined(__HP_aCC) && defined(BLOCXX_ARCH_IA64)
61 #elif defined(BLOCXX_ARCH_IA64)
63 __asm__ __volatile__(
"mf");
65 #elif defined(BLOCXX_ARCH_PPC) || defined(BLOCXX_ARCH_PPC64)
67 __asm__ __volatile__ (
"sync" : : :
"memory");
69 #elif defined(BLOCXX_ARCH_S390) || defined(BLOCXX_ARCH_S390X)
71 __asm__ __volatile__ (
"bcr 15,0" : : :
"memory" );
73 #elif defined(BLOCXX_ARCH_X86_64) || defined(BLOCXX_ARCH_X86) || defined(BLOCXX_ARCH_HPPA20) || defined(BLOCXX_ARCH_SPARC)
76 #error "Unknown architecture. readWriteMemoryBarrier() must be updated"
void readWriteMemoryBarrier()
This function is solely for the use of libblocxx threading primitives.