chore(atomic): use typedef aliases for better cross platform compat

This commit is contained in:
fallenoak 2020-12-04 00:19:19 -06:00
parent 653fa81853
commit 2200aab4c2
No known key found for this signature in database
GPG key ID: 7628F8E61AEA070D
3 changed files with 14 additions and 6 deletions

View file

@ -4,7 +4,7 @@
#include <windows.h>
#endif
int32_t SInterlockedDecrement(int32_t* ptr) {
ATOMIC32 SInterlockedDecrement(ATOMIC32* ptr) {
#if defined(WHOA_SYSTEM_WIN)
return InterlockedDecrement(ptr);
#endif
@ -14,7 +14,7 @@ int32_t SInterlockedDecrement(int32_t* ptr) {
#endif
}
int32_t SInterlockedIncrement(int32_t* ptr) {
ATOMIC32 SInterlockedIncrement(ATOMIC32* ptr) {
#if defined(WHOA_SYSTEM_WIN)
return InterlockedIncrement(ptr);
#endif

View file

@ -3,8 +3,16 @@
#include <cstdint>
int32_t SInterlockedDecrement(int32_t* ptr);
#if defined(WHOA_SYSTEM_WIN)
typedef long ATOMIC32;
#endif
int32_t SInterlockedIncrement(int32_t* ptr);
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
typedef int32_t ATOMIC32;
#endif
ATOMIC32 SInterlockedDecrement(ATOMIC32* ptr);
ATOMIC32 SInterlockedIncrement(ATOMIC32* ptr);
#endif

View file

@ -3,7 +3,7 @@
TEST_CASE("SInterlockedDecrement", "[atomic]") {
SECTION("decrements value") {
int32_t value = 1;
ATOMIC32 value = 1;
auto decremented = SInterlockedDecrement(&value);
CHECK(value == 0);
CHECK(decremented == 0);
@ -12,7 +12,7 @@ TEST_CASE("SInterlockedDecrement", "[atomic]") {
TEST_CASE("SInterlockedIncrement", "[atomic]") {
SECTION("increments value") {
int32_t value = { 1 };
ATOMIC32 value = 1;
auto incremented = SInterlockedIncrement(&value);
CHECK(value == 2);
CHECK(incremented == 2);