aboutsummaryrefslogtreecommitdiff
path: root/tsan.supp
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2026-03-16 10:56:11 +0100
committerGitHub Enterprise <[email protected]>2026-03-16 10:56:11 +0100
commit8c3ba4e8c522d119df3cb48966e36c0eaa80aeb9 (patch)
treecf51b07e097904044b4bf65bc3fe0ad14134074f /tsan.supp
parentMerge branch 'sb/no-network' of https://github.ol.epicgames.net/ue-foundation... (diff)
parentEnable cross compilation of Windows targets on Linux (#839) (diff)
downloadzen-sb/no-network.tar.xz
zen-sb/no-network.zip
Merge branch 'main' into sb/no-networksb/no-network
Diffstat (limited to 'tsan.supp')
-rw-r--r--tsan.supp12
1 files changed, 12 insertions, 0 deletions
diff --git a/tsan.supp b/tsan.supp
index da8963854..93398da67 100644
--- a/tsan.supp
+++ b/tsan.supp
@@ -20,3 +20,15 @@
# TSAN reports as a race. This is benign: the slot is always NULL and writing NULL
# to it has no observable effect.
race:eastl::hashtable*DoFreeNodes*
+
+# UE::Trace's GetUid() uses a racy static uint32 cache (Uid = Uid ? Uid : Initialize())
+# as a fast path to avoid re-entering Initialize(). The actual initialization is done via
+# a thread-safe static (Uid_ThreadSafeInit) inside Initialize(), so the worst case is
+# redundant calls to Initialize() which always returns the same value.
+race:*Fields::GetUid*
+
+# TRACE_CPU_SCOPE generates a function-local `static int32 scope_id` that is lazily
+# initialized without synchronization (if (0 == scope_id) scope_id = ScopeNew(...)).
+# Same benign pattern as GetUid: the worst case is redundant calls to ScopeNew() which
+# always returns the same value for a given scope name.
+race:*$trace_scope_id*