Bläddra i källkod

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.
lat9nq 4 år sedan
förälder
incheckning
983916e919
1 ändrade filer med 1 tillägg och 1 borttagningar
  1. 1 1
      src/core/hle/kernel/k_auto_object.h

+ 1 - 1
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) {