UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ThreadSafeCounter.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
7
9// DEPRECATED. Please use `std::atomic<int32>`.
11
14{
15public:
17
24 {
25#if USING_THREAD_SANITISER
26 FPlatformAtomics::AtomicStore(&Counter, Value);
27#else
28 Counter = Value;
29#endif
30 }
31
45
53 {
54 return FPlatformAtomics::InterlockedIncrement(&Counter);
55 }
56
64 int32 Add( int32 Amount )
65 {
66 return FPlatformAtomics::InterlockedAdd(&Counter, Amount);
67 }
68
76 {
77 return FPlatformAtomics::InterlockedDecrement(&Counter);
78 }
79
88 {
89 return FPlatformAtomics::InterlockedAdd(&Counter, -Amount);
90 }
91
100 {
101 return FPlatformAtomics::InterlockedExchange(&Counter, Value);
102 }
103
111 {
112 return Set(0);
113 }
114
121 {
122 return FPlatformAtomics::AtomicRead(&Counter);
123 }
124
125private:
126
128 void operator=(const FThreadSafeCounter& Other) = delete;
129
131 volatile int32 Counter;
132};
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
Definition ThreadSafeCounter.h:14
int32 Subtract(int32 Amount)
Definition ThreadSafeCounter.h:87
int32 Increment()
Definition ThreadSafeCounter.h:52
int32 IntegerType
Definition ThreadSafeCounter.h:16
FThreadSafeCounter(const FThreadSafeCounter &Other)
Definition ThreadSafeCounter.h:41
int32 Decrement()
Definition ThreadSafeCounter.h:75
int32 Add(int32 Amount)
Definition ThreadSafeCounter.h:64
int32 GetValue() const
Definition ThreadSafeCounter.h:120
FThreadSafeCounter(int32 Value=0)
Definition ThreadSafeCounter.h:23
int32 Reset()
Definition ThreadSafeCounter.h:110
int32 Set(int32 Value)
Definition ThreadSafeCounter.h:99