/
githubmirror
/
client
Обзор
Документация
Войти
/
githubmirror
/
client
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
go/libkb/vlock.go
35 строк
688 B
chrisnojima-zoom
Version 670 - clean2 (#29122)
08 июн 2026, 19:31
Не верифицирован
08 июн 2026, 19:31
1943197
Код
Авторство
О чём код?
package libkb import ( "fmt" "sync" ) type VerboseLockRelease = func() type VerboseLock struct { mu sync.Mutex level VDebugLevel name string } func NewVerboseLock(level VDebugLevel, name string) *VerboseLock { return &VerboseLock{ level: level, name: name, } } func (l *VerboseLock) Acquire(mctx MetaContext, reasonFormat string, args ...any) (release VerboseLockRelease) { reason := fmt.Sprintf(reasonFormat, args...) log := func(symbol string, word string) { mctx.VLogf(l.level, "%v VerboseLock [%v] %v: %v", symbol, l.name, word, reason) } log("+", "acquiring") l.mu.Lock() log("|", "acquired") return func() { l.mu.Unlock() log("-", "released") } }