Files
ops-assistant/internal/core/runbook/lock.go
2026-03-19 21:23:28 +08:00

22 lines
335 B
Go

package runbook
import (
"sync"
)
var globalTargetLocks sync.Map
type targetLock struct {
mu sync.Mutex
}
func acquireTargetLock(target string) func() {
if target == "" {
return func() {}
}
v, _ := globalTargetLocks.LoadOrStore(target, &targetLock{})
lk := v.(*targetLock)
lk.mu.Lock()
return func() { lk.mu.Unlock() }
}