Files
2023-04-02 21:43:11 +08:00

39 lines
513 B
Go

package server
//封装一下易于调试的lock
import (
"sync"
)
type lock struct {
l sync.RWMutex
}
type unlock struct {
key string
l *sync.RWMutex
}
func (l *lock) Lock(old ...*unlock) *unlock {
u := &unlock{l: &l.l}
if len(old) == 1 {
u = old[0]
}
l.l.Lock()
return u
}
func (l *lock) RLock(old ...*unlock) *unlock {
u := &unlock{l: &l.l}
if len(old) == 1 {
u = old[0]
}
l.l.RLock()
return u
}
func (l *unlock) Unlock() {
l.l.Unlock()
}
func (l *unlock) RUnlock() {
l.l.RUnlock()
}