UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AllowWindowsPlatformAtomics.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3// #TODO: redirect to platform-agnostic version for the time being. Eventually this will become an error
4#include "HAL/Platform.h"
5#if !PLATFORM_WINDOWS
7#else
8
9#ifndef WINDOWS_PLATFORM_ATOMICS_GUARD
10 #define WINDOWS_PLATFORM_ATOMICS_GUARD
11#else
12 #error Nesting AllowWindowsPlatformAtomics.h is not allowed!
13#endif
14
15#define InterlockedIncrement _InterlockedIncrement
16#define InterlockedDecrement _InterlockedDecrement
17#if !defined(InterlockedAdd) && !PLATFORM_WINDOWS_ARM64EC
18 #define InterlockedAdd _InterlockedAdd
19#endif
20#define InterlockedExchange _InterlockedExchange
21#define InterlockedExchangeAdd _InterlockedExchangeAdd
22#define InterlockedCompareExchange _InterlockedCompareExchange
23#define InterlockedAnd _InterlockedAnd
24#define InterlockedOr _InterlockedOr
25#define InterlockedXor _InterlockedXor
26
27#if PLATFORM_64BITS
28 #define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer
29#else
30 #define InterlockedCompareExchangePointer __InlineInterlockedCompareExchangePointer
31#endif
32
33#if PLATFORM_64BITS
34 #define InterlockedExchange64 _InterlockedExchange64
35 #define InterlockedExchangeAdd64 _InterlockedExchangeAdd64
36 #define InterlockedCompareExchange64 _InterlockedCompareExchange64
37 #define InterlockedIncrement64 _InterlockedIncrement64
38 #define InterlockedDecrement64 _InterlockedDecrement64
39#endif
40
41#endif //PLATFORM_*