From 330f53df3d6143867c0d78d97cdfb8bbd6c42ebb Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sun, 16 Jun 2024 15:58:30 +0800 Subject: [PATCH] 1 --- sysutils.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/sysutils.go b/sysutils.go index 9e4f5fe..2a547e8 100644 --- a/sysutils.go +++ b/sysutils.go @@ -73,6 +73,29 @@ func ReleaseLock(l *sync.Mutex) { l.Unlock() } +func BatchAllocLock(keys []string) []*sync.Mutex { + locks := []*sync.Mutex{} + lock := sync.Mutex{} + for _, key := range keys { + go func () { + l := AllocLock(key) + lock.Lock() + q5.AppendSlice(&locks, l) + lock.Unlock() + }() + } + for len(locks) < len(keys) { + time.Sleep(time.Millisecond * 10) + } + return locks +} + +func BatchReleaseLock(locks []*sync.Mutex) { + for _, val := range locks { + ReleaseLock(val) + } +} + func init() { switch os.Getenv("SERVER_ENV") { case "TEST":