diff options
author | Unknwon <u@gogs.io> | 2018-06-09 17:34:38 +0800 |
---|---|---|
committer | Unknwon <u@gogs.io> | 2018-06-09 17:34:38 +0800 |
commit | 5e158b51db1022318e95d1998d2fc9fc50f061f1 (patch) | |
tree | 817eea5ca0944c4d07bbf22a8b5e20a0b163aaa6 /vendor/github.com/modern-go/concurrent/go_below_19.go | |
parent | fbecc18e2e4d4eb863a990a57218305f190ae6db (diff) |
vendor: add new dependencies
Diffstat (limited to 'vendor/github.com/modern-go/concurrent/go_below_19.go')
-rw-r--r-- | vendor/github.com/modern-go/concurrent/go_below_19.go | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/vendor/github.com/modern-go/concurrent/go_below_19.go b/vendor/github.com/modern-go/concurrent/go_below_19.go new file mode 100644 index 00000000..b9c8df7f --- /dev/null +++ b/vendor/github.com/modern-go/concurrent/go_below_19.go @@ -0,0 +1,33 @@ +//+build !go1.9 + +package concurrent + +import "sync" + +// Map implements a thread safe map for go version below 1.9 using mutex +type Map struct { + lock sync.RWMutex + data map[interface{}]interface{} +} + +// NewMap creates a thread safe map +func NewMap() *Map { + return &Map{ + data: make(map[interface{}]interface{}, 32), + } +} + +// Load is same as sync.Map Load +func (m *Map) Load(key interface{}) (elem interface{}, found bool) { + m.lock.RLock() + elem, found = m.data[key] + m.lock.RUnlock() + return +} + +// Load is same as sync.Map Store +func (m *Map) Store(key interface{}, elem interface{}) { + m.lock.Lock() + m.data[key] = elem + m.lock.Unlock() +} |