mirror of
https://github.com/charlienet/go-mixed.git
synced 2025-07-17 16:12:42 +08:00
locker
This commit is contained in:
@ -1,14 +1,9 @@
|
||||
package locker
|
||||
|
||||
var _ RWLocker = &emptyLocker{}
|
||||
var _ Locker = &emptyLocker{}
|
||||
var _ rwLocker = &emptyLocker{}
|
||||
var _ locker = &emptyLocker{}
|
||||
|
||||
var EmptyLocker = &emptyLocker{}
|
||||
|
||||
type emptyLocker struct{}
|
||||
|
||||
func NewEmptyLocker() *emptyLocker {
|
||||
return &emptyLocker{}
|
||||
type emptyLocker struct {
|
||||
}
|
||||
|
||||
func (l *emptyLocker) RLock() {}
|
||||
|
@ -2,14 +2,16 @@ package locker
|
||||
|
||||
import "sync"
|
||||
|
||||
type Locker interface {
|
||||
type locker interface {
|
||||
Lock()
|
||||
Unlock()
|
||||
TryLock() bool
|
||||
}
|
||||
|
||||
type RWLocker interface {
|
||||
Locker
|
||||
type rwLocker interface {
|
||||
Lock()
|
||||
Unlock()
|
||||
TryLock() bool
|
||||
RLock()
|
||||
RUnlock()
|
||||
TryRLock() bool
|
||||
@ -18,3 +20,7 @@ type RWLocker interface {
|
||||
func NewLocker() *sync.Mutex {
|
||||
return &sync.Mutex{}
|
||||
}
|
||||
|
||||
func NewRWLocker() *sync.RWMutex {
|
||||
return &sync.RWMutex{}
|
||||
}
|
||||
|
@ -1,7 +0,0 @@
|
||||
package locker
|
||||
|
||||
import "sync"
|
||||
|
||||
func NewRWLocker() *sync.RWMutex {
|
||||
return &sync.RWMutex{}
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
package locker
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestRWLokcer(t *testing.T) {
|
||||
l := NewRWLocker()
|
||||
l.RLock()
|
||||
|
||||
t.Log(l.TryRLock())
|
||||
|
||||
l.RUnlock()
|
||||
}
|
Reference in New Issue
Block a user