From f9451915b9a7e91e796ba1f1e37e9dfc569608f5 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Mon, 16 Jun 2025 15:07:58 +0300 Subject: [PATCH] LibC: Use `pause` in pthread spinlock locking --- userspace/libraries/LibC/pthread.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/userspace/libraries/LibC/pthread.cpp b/userspace/libraries/LibC/pthread.cpp index 3b32feba..0b8732f9 100644 --- a/userspace/libraries/LibC/pthread.cpp +++ b/userspace/libraries/LibC/pthread.cpp @@ -648,7 +648,11 @@ int pthread_spin_lock(pthread_spinlock_t* lock) pthread_t expected = 0; while (!BAN::atomic_compare_exchange(*lock, expected, tid, BAN::MemoryOrder::memory_order_acquire)) + { + __builtin_ia32_pause(); expected = 0; + } + return 0; }