mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-11-02 20:52:25 -06:00
update dependencies (#296)
This commit is contained in:
parent
2aaec82732
commit
829a934d23
124 changed files with 2453 additions and 1588 deletions
|
|
@ -1,39 +0,0 @@
|
|||
package mutexes
|
||||
|
||||
import "sync"
|
||||
|
||||
// WithSafety wrapps the supplied Mutex to protect unlock fns
|
||||
// from being called multiple times
|
||||
func WithSafety(mu Mutex) Mutex {
|
||||
return &safeMutex{mu: mu}
|
||||
}
|
||||
|
||||
// WithSafetyRW wrapps the supplied RWMutex to protect unlock
|
||||
// fns from being called multiple times
|
||||
func WithSafetyRW(mu RWMutex) RWMutex {
|
||||
return &safeRWMutex{mu: mu}
|
||||
}
|
||||
|
||||
// safeMutex simply wraps a Mutex to add multi-unlock safety
|
||||
type safeMutex struct{ mu Mutex }
|
||||
|
||||
func (mu *safeMutex) Lock() func() {
|
||||
unlock := mu.mu.Lock()
|
||||
once := sync.Once{}
|
||||
return func() { once.Do(unlock) }
|
||||
}
|
||||
|
||||
// safeRWMutex simply wraps a RWMutex to add multi-unlock safety
|
||||
type safeRWMutex struct{ mu RWMutex }
|
||||
|
||||
func (mu *safeRWMutex) Lock() func() {
|
||||
unlock := mu.mu.Lock()
|
||||
once := sync.Once{}
|
||||
return func() { once.Do(unlock) }
|
||||
}
|
||||
|
||||
func (mu *safeRWMutex) RLock() func() {
|
||||
unlock := mu.mu.RLock()
|
||||
once := sync.Once{}
|
||||
return func() { once.Do(unlock) }
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue