//  // // ##### #### # # -= Threadux =-  // //  # # # ## ## Interlocked.cpp  // //  # # # ##  // //  # # # ### Atomic variable modification  // //  # # # ## ##  // //  # #### # # R1 2004 by Markus Ewald  // //  // #include "Threadux/Interlocked.h" #define WIN32_LEAN_AND_MEAN #include using namespace Threadux; void Threadux::interlockedSet(volatile long &Variable, long NewValue) { ::InterlockedExchange(&Variable, NewValue); } void Threadux::interlockedIncrement(volatile long &Variable) { ::InterlockedIncrement(&Variable); } void Threadux::interlockedDecrement(volatile long &Variable) { ::InterlockedDecrement(&Variable); } #ifdef THREADUX_64BITS void Threadux::interlockedSet(volatile long long &Variable, long long NewValue) { ::InterlockedExchange64(&Variable, NewValue); } void Threadux::interlockedIncrement(volatile long long &Variable) { ::InterlockedIncrement64(&Variable); } void Threadux::interlockedDecrement(volatile long long &Variable) { ::InterlockedDecrement64(&Variable); } #endif // THREADUX_64BITS