From 9e3fb73169994b221be6bde58d323f8d101cb12c Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Wed, 2 Jun 2021 09:09:01 +0200 Subject: [PATCH] LibC: Use memory_order_acquire instead of memory_order_acq_rel Acquire ordering should be sufficient for pthread_mutex_lock and pthread_mutex_trylock. --- Userland/Libraries/LibC/pthread_integration.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Userland/Libraries/LibC/pthread_integration.cpp b/Userland/Libraries/LibC/pthread_integration.cpp index f0ef135b25..ee26265cf5 100644 --- a/Userland/Libraries/LibC/pthread_integration.cpp +++ b/Userland/Libraries/LibC/pthread_integration.cpp @@ -96,7 +96,7 @@ int __pthread_mutex_lock(pthread_mutex_t* mutex) pthread_t this_thread = __pthread_self(); for (;;) { u32 expected = 0; - if (!AK::atomic_compare_exchange_strong(&mutex->lock, expected, 1u, AK::memory_order_acq_rel)) { + if (!AK::atomic_compare_exchange_strong(&mutex->lock, expected, 1u, AK::memory_order_acquire)) { if (mutex->type == __PTHREAD_MUTEX_RECURSIVE && mutex->owner == this_thread) { mutex->level++; return 0; @@ -128,7 +128,7 @@ int pthread_mutex_unlock(pthread_mutex_t*) __attribute__((weak, alias("__pthread int __pthread_mutex_trylock(pthread_mutex_t* mutex) { u32 expected = 0; - if (!AK::atomic_compare_exchange_strong(&mutex->lock, expected, 1u, AK::memory_order_acq_rel)) { + if (!AK::atomic_compare_exchange_strong(&mutex->lock, expected, 1u, AK::memory_order_acquire)) { if (mutex->type == __PTHREAD_MUTEX_RECURSIVE && mutex->owner == pthread_self()) { mutex->level++; return 0;