UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ThreadSafeCounter64.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<int64>`
11
14{
15public:
17
24 {
25 Counter = 0;
26 }
27
38 {
39 Counter = Other.GetValue();
40 }
41
44 {
45 if (this == &Other) return *this;
46 Set(Other.GetValue());
47 return *this;
48 }
49
50
57 {
58 Counter = Value;
59 }
60
68 {
69 return FPlatformAtomics::InterlockedIncrement(&Counter);
70 }
71
79 int64 Add(int64 Amount)
80 {
81 return FPlatformAtomics::InterlockedAdd(&Counter, Amount);
82 }
83
91 {
92 return FPlatformAtomics::InterlockedDecrement(&Counter);
93 }
94
103 {
104 return FPlatformAtomics::InterlockedAdd(&Counter, -Amount);
105 }
106
115 {
116 return FPlatformAtomics::InterlockedExchange(&Counter, Value);
117 }
118
126 {
127 return FPlatformAtomics::InterlockedExchange(&Counter, 0);
128 }
129
136 {
137 return FPlatformAtomics::AtomicRead(&Counter);
138 }
139
140private:
142 volatile int64 Counter;
143};
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
Definition ThreadSafeCounter64.h:14
int64 Reset()
Definition ThreadSafeCounter64.h:125
int64 Set(int64 Value)
Definition ThreadSafeCounter64.h:114
int64 Add(int64 Amount)
Definition ThreadSafeCounter64.h:79
FThreadSafeCounter64(int64 Value)
Definition ThreadSafeCounter64.h:56
int64 GetValue() const
Definition ThreadSafeCounter64.h:135
int64 IntegerType
Definition ThreadSafeCounter64.h:16
FThreadSafeCounter64()
Definition ThreadSafeCounter64.h:23
FThreadSafeCounter64(const FThreadSafeCounter64 &Other)
Definition ThreadSafeCounter64.h:37
int64 Increment()
Definition ThreadSafeCounter64.h:67
int64 Decrement()
Definition ThreadSafeCounter64.h:90
FThreadSafeCounter64 & operator=(const FThreadSafeCounter64 &Other)
Definition ThreadSafeCounter64.h:43
int64 Subtract(int64 Amount)
Definition ThreadSafeCounter64.h:102