From 85f9b585f5d5234a8d3ddc7299334fc725a62e2a Mon Sep 17 00:00:00 2001 From: Bananymous Date: Sat, 19 Apr 2025 22:31:35 +0300 Subject: [PATCH] LibC: Don't yield on `pthread_spin_lock` Thats kinda the whole point of spinlocks :D --- userspace/libraries/LibC/pthread.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/userspace/libraries/LibC/pthread.cpp b/userspace/libraries/LibC/pthread.cpp index eeb8f95e..52da1a07 100644 --- a/userspace/libraries/LibC/pthread.cpp +++ b/userspace/libraries/LibC/pthread.cpp @@ -323,8 +323,7 @@ int pthread_spin_destroy(pthread_spinlock_t* lock) int pthread_spin_init(pthread_spinlock_t* lock, int pshared) { (void)pshared; - new (lock) BAN::Atomic(); - pthread_spin_get_atomic(lock) = false; + new (lock) BAN::Atomic(0); return 0; } @@ -337,10 +336,7 @@ int pthread_spin_lock(pthread_spinlock_t* lock) pthread_t expected = 0; while (!atomic.compare_exchange(expected, tid, BAN::MemoryOrder::memory_order_acquire)) - { - sched_yield(); expected = 0; - } return 0; }