2020-12-04 00:00:03 -06:00
|
|
|
#include "storm/Atomic.hpp"
|
|
|
|
|
|
|
|
|
|
#if defined(WHOA_SYSTEM_WIN)
|
|
|
|
|
#include <windows.h>
|
|
|
|
|
#endif
|
|
|
|
|
|
2020-12-04 00:19:19 -06:00
|
|
|
ATOMIC32 SInterlockedDecrement(ATOMIC32* ptr) {
|
2020-12-04 00:00:03 -06:00
|
|
|
#if defined(WHOA_SYSTEM_WIN)
|
|
|
|
|
return InterlockedDecrement(ptr);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
|
|
|
|
|
return __sync_fetch_and_sub(ptr, 1) - 1;
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
|
2020-12-04 00:19:19 -06:00
|
|
|
ATOMIC32 SInterlockedIncrement(ATOMIC32* ptr) {
|
2020-12-04 00:00:03 -06:00
|
|
|
#if defined(WHOA_SYSTEM_WIN)
|
|
|
|
|
return InterlockedIncrement(ptr);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
|
|
|
|
|
return __sync_fetch_and_add(ptr, 1) + 1;
|
|
|
|
|
#endif
|
|
|
|
|
}
|