mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-12-02 13:48:07 -06:00
update my personal library versions (#220)
Signed-off-by: kim (grufwub) <grufwub@gmail.com>
This commit is contained in:
parent
f6492d12d9
commit
635281f133
6 changed files with 63 additions and 84 deletions
24
vendor/git.iim.gay/grufwub/go-mutexes/map.go
vendored
24
vendor/git.iim.gay/grufwub/go-mutexes/map.go
vendored
|
|
@ -8,15 +8,7 @@ import (
|
|||
// by key. You do not need to worry about managing the contents of the map,
|
||||
// only requesting RLock/Lock for keys, and ensuring to call the returned
|
||||
// unlock functions.
|
||||
type MutexMap interface {
|
||||
// Lock acquires a mutex lock for supplied key, returning an Unlock function
|
||||
Lock(key string) (unlock func())
|
||||
|
||||
// RLock acquires a mutex read lock for supplied key, returning an RUnlock function
|
||||
RLock(key string) (runlock func())
|
||||
}
|
||||
|
||||
type mutexMap struct {
|
||||
type MutexMap struct {
|
||||
// NOTE:
|
||||
// Individual keyed mutexes should ONLY ever
|
||||
// be locked within the protection of the outer
|
||||
|
|
@ -35,7 +27,7 @@ func NewMap(newFn func() RWMutex) MutexMap {
|
|||
if newFn == nil {
|
||||
newFn = NewRW
|
||||
}
|
||||
return &mutexMap{
|
||||
return MutexMap{
|
||||
mus: make(map[string]RWMutex),
|
||||
mapMu: sync.Mutex{},
|
||||
pool: sync.Pool{
|
||||
|
|
@ -46,7 +38,7 @@ func NewMap(newFn func() RWMutex) MutexMap {
|
|||
}
|
||||
}
|
||||
|
||||
func (mm *mutexMap) evict(key string, mu RWMutex) {
|
||||
func (mm *MutexMap) evict(key string, mu RWMutex) {
|
||||
// Acquire map lock
|
||||
mm.mapMu.Lock()
|
||||
|
||||
|
|
@ -63,21 +55,21 @@ func (mm *mutexMap) evict(key string, mu RWMutex) {
|
|||
mm.pool.Put(mu)
|
||||
}
|
||||
|
||||
// GetRLock acquires a mutex read lock for supplied key, returning an RUnlock function
|
||||
func (mm *mutexMap) RLock(key string) func() {
|
||||
// RLock acquires a mutex read lock for supplied key, returning an RUnlock function
|
||||
func (mm *MutexMap) RLock(key string) func() {
|
||||
return mm.getLock(key, func(mu RWMutex) func() {
|
||||
return mu.RLock()
|
||||
})
|
||||
}
|
||||
|
||||
// GetLock acquires a mutex lock for supplied key, returning an Unlock function
|
||||
func (mm *mutexMap) Lock(key string) func() {
|
||||
// Lock acquires a mutex lock for supplied key, returning an Unlock function
|
||||
func (mm *MutexMap) Lock(key string) func() {
|
||||
return mm.getLock(key, func(mu RWMutex) func() {
|
||||
return mu.Lock()
|
||||
})
|
||||
}
|
||||
|
||||
func (mm *mutexMap) getLock(key string, doLock func(RWMutex) func()) func() {
|
||||
func (mm *MutexMap) getLock(key string, doLock func(RWMutex) func()) func() {
|
||||
// Get map lock
|
||||
mm.mapMu.Lock()
|
||||
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ type timeoutMutex struct {
|
|||
}
|
||||
|
||||
func (mu *timeoutMutex) Lock() func() {
|
||||
return mu.LockFunc(func() { panic("timed out") })
|
||||
return mu.LockFunc(func() { panic("lock timed out") })
|
||||
}
|
||||
|
||||
func (mu *timeoutMutex) LockFunc(fn func()) func() {
|
||||
|
|
@ -58,7 +58,7 @@ type timeoutRWMutex struct {
|
|||
}
|
||||
|
||||
func (mu *timeoutRWMutex) Lock() func() {
|
||||
return mu.LockFunc(func() { panic("timed out") })
|
||||
return mu.LockFunc(func() { panic("lock timed out") })
|
||||
}
|
||||
|
||||
func (mu *timeoutRWMutex) LockFunc(fn func()) func() {
|
||||
|
|
@ -66,7 +66,7 @@ func (mu *timeoutRWMutex) LockFunc(fn func()) func() {
|
|||
}
|
||||
|
||||
func (mu *timeoutRWMutex) RLock() func() {
|
||||
return mu.RLockFunc(func() { panic("timed out") })
|
||||
return mu.RLockFunc(func() { panic("rlock timed out") })
|
||||
}
|
||||
|
||||
func (mu *timeoutRWMutex) RLockFunc(fn func()) func() {
|
||||
|
|
@ -76,7 +76,8 @@ func (mu *timeoutRWMutex) RLockFunc(fn func()) func() {
|
|||
// timeoutPool provides nowish.Timeout objects for timeout mutexes
|
||||
var timeoutPool = sync.Pool{
|
||||
New: func() interface{} {
|
||||
return nowish.NewTimeout()
|
||||
t := nowish.NewTimeout()
|
||||
return &t
|
||||
},
|
||||
}
|
||||
|
||||
|
|
@ -88,7 +89,7 @@ func mutexTimeout(d time.Duration, unlock func(), fn func()) func() {
|
|||
}
|
||||
|
||||
// Acquire timeout obj
|
||||
t := timeoutPool.Get().(nowish.Timeout)
|
||||
t := timeoutPool.Get().(*nowish.Timeout)
|
||||
|
||||
// Start the timeout with hook
|
||||
t.Start(d, fn)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue