From 4e97d13d20701439b7d9f719c590cbae1d948e59 Mon Sep 17 00:00:00 2001 From: charlie <3140647@qq.com> Date: Tue, 7 Jun 2022 10:57:42 +0800 Subject: [PATCH] spin locker --- locker/spin_locker.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/locker/spin_locker.go b/locker/spin_locker.go index 8db0e44..2309dee 100644 --- a/locker/spin_locker.go +++ b/locker/spin_locker.go @@ -11,6 +11,10 @@ func NewSpinLocker() *spinLock { return new(spinLock) } +func (sl *spinLock) TryLock() bool { + return atomic.CompareAndSwapUint32((*uint32)(sl), 0, 1) +} + func (sl *spinLock) Lock() { for !atomic.CompareAndSwapUint32((*uint32)(sl), 0, 1) { runtime.Gosched()