From b1daffad196c98b306a197efa56d48584516da56 Mon Sep 17 00:00:00 2001 From: lizzie Date: Tue, 13 Jan 2026 04:17:27 +0100 Subject: [common] move spinlock to pure header def (#3287) inline justified because it's like 4-5 assembly instructions max Signed-off-by: lizzie Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3287 Reviewed-by: DraVee Reviewed-by: CamilleLaVey Co-authored-by: lizzie Co-committed-by: lizzie --- src/common/spin_lock.cpp | 53 ------------------------------------------------ 1 file changed, 53 deletions(-) delete mode 100644 src/common/spin_lock.cpp (limited to 'src/common/spin_lock.cpp') diff --git a/src/common/spin_lock.cpp b/src/common/spin_lock.cpp deleted file mode 100644 index b2ef4ea1d0..0000000000 --- a/src/common/spin_lock.cpp +++ /dev/null @@ -1,53 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "common/spin_lock.h" - -#if _MSC_VER -#include -#if _M_AMD64 -#define __x86_64__ 1 -#endif -#if _M_ARM64 -#define __aarch64__ 1 -#endif -#else -#if __x86_64__ -#include -#endif -#endif - -namespace { - -void ThreadPause() { -#if __x86_64__ - _mm_pause(); -#elif __aarch64__ && _MSC_VER - __yield(); -#elif __aarch64__ - asm("yield"); -#endif -} - -} // Anonymous namespace - -namespace Common { - -void SpinLock::lock() { - while (lck.test_and_set(std::memory_order_acquire)) { - ThreadPause(); - } -} - -void SpinLock::unlock() { - lck.clear(std::memory_order_release); -} - -bool SpinLock::try_lock() { - if (lck.test_and_set(std::memory_order_acquire)) { - return false; - } - return true; -} - -} // namespace Common -- cgit v1.2.3