summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlat9nq <lat9nq@gmail.com>2022-04-01 19:54:35 -0400
committerlat9nq <lat9nq@gmail.com>2022-04-03 21:47:58 -0400
commit983916e9193a65d2cbd55039cc1569c46a7081c1 (patch)
tree6b973ce8161a4896839718e0bb93d90831211e09
parent6bcbbb29e7822f5ebd6ac985066dfdd0890492f0 (diff)
k_auto_object: Fix data race
Change the memory order to acqure-release when we decrement the reference count. Prevents a race with line 89 reported by TSan.
-rw-r--r--src/core/hle/kernel/k_auto_object.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/core/hle/kernel/k_auto_object.h b/src/core/hle/kernel/k_auto_object.h
index 05779f2d5..abdb8ae7c 100644
--- a/src/core/hle/kernel/k_auto_object.h
+++ b/src/core/hle/kernel/k_auto_object.h
@@ -163,7 +163,7 @@ public:
do {
ASSERT(cur_ref_count > 0);
} while (!m_ref_count.compare_exchange_weak(cur_ref_count, cur_ref_count - 1,
- std::memory_order_relaxed));
+ std::memory_order_acq_rel));
// If ref count hits zero, destroy the object.
if (cur_ref_count - 1 == 0) {