From 66f46d03e4aeb5fe77098db73f275ddab3cfde8c Mon Sep 17 00:00:00 2001 From: Tom Date: Wed, 28 Oct 2020 20:03:15 -0600 Subject: [PATCH] Kernel: Minor Lock optimization --- Kernel/Lock.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Kernel/Lock.cpp b/Kernel/Lock.cpp index 720f6ae8b1..870fe9b86d 100644 --- a/Kernel/Lock.cpp +++ b/Kernel/Lock.cpp @@ -52,8 +52,7 @@ void Lock::lock(Mode mode) } auto current_thread = Thread::current(); for (;;) { - bool expected = false; - if (m_lock.compare_exchange_strong(expected, true, AK::memory_order_acq_rel)) { + if (m_lock.exchange(true, AK::memory_order_acq_rel) == false) { do { // FIXME: Do not add new readers if writers are queued. bool modes_dont_conflict = !modes_conflict(m_mode, mode); @@ -91,8 +90,7 @@ void Lock::unlock() { auto current_thread = Thread::current(); for (;;) { - bool expected = false; - if (m_lock.compare_exchange_strong(expected, true, AK::memory_order_acq_rel)) { + if (m_lock.exchange(true, AK::memory_order_acq_rel) == false) { ASSERT(m_times_locked); --m_times_locked;