From 0b0d2d2e8f8a6a6f1369ae11ad7400d2b1adb4f4 Mon Sep 17 00:00:00 2001 From: LIU Hao Date: Mon, 14 Oct 2024 00:46:46 +0800 Subject: [PATCH] mutex: Optimize a little --- mcfgthread/mutex.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mcfgthread/mutex.c b/mcfgthread/mutex.c index a842d8c7..c2fc9b3d 100644 --- a/mcfgthread/mutex.c +++ b/mcfgthread/mutex.c @@ -73,7 +73,7 @@ _MCF_mutex_lock_slow(_MCF_mutex* mutex, const int64_t* timeout_opt) new.__locked = 1; new.__sp_mask = old.__sp_mask | (old.__sp_mask + (old.__locked & spinnable)); new.__sp_nfail = do_adjust_sp_nfail(old.__sp_nfail, (int) old.__locked * 2 - 1); - new.__nsleep = old.__nsleep + (old.__locked & ~spinnable); + new.__nsleep = old.__nsleep + (old.__locked & (spinnable - 1U)); } while(!_MCF_atomic_cmpxchg_weak_pptr_arl(mutex, &old, &new)); #pragma GCC diagnostic pop