1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
#include "Interlocked.hpp" #ifdef CRU_WINDOWS #include <Windows.h> #else #endif namespace cru { void InterlockedAdd(volatile long long *v, long long a) { #ifdef CRU_WINDOWS InterlockedAdd64(v, a); #else __sync_fetch_and_add(v, a); #endif } } // namespace cru