7 #if defined(_WIN32) && defined(_MSC_VER)
25 inline static uint32_t
increment(
volatile uint32_t& value, uint32_t byValue = 1) {
26 #if defined(_WIN32) && defined(_MSC_VER)
27 return InterlockedAdd((
volatile long*)&value, (
long)byValue);
29 return __sync_add_and_fetch(&value, byValue);
39 inline static uint32_t
decrement(
volatile uint32_t& value, uint32_t byValue = 1) {
40 #if defined(_WIN32) && defined(_MSC_VER)
41 return InterlockedAdd((
volatile long*)&value, (
long)-byValue);
43 return __sync_sub_and_fetch(&value, byValue);
static uint32_t decrement(volatile uint32_t &value, uint32_t byValue=1)
Decrement uint32 value and return its value.
static uint32_t increment(volatile uint32_t &value, uint32_t byValue=1)
Increment uint32 value and return its value.