oh-my-posh/src/concurrent_map.go

31 lines
526 B
Go
Raw Normal View History

2021-09-21 11:22:59 -07:00
package main
import "sync"
type concurrentMap struct {
values map[string]string
lock sync.RWMutex
}
func newConcurrentMap() *concurrentMap {
return &concurrentMap{
values: make(map[string]string),
lock: sync.RWMutex{},
}
}
func (c *concurrentMap) set(key, value string) {
c.lock.Lock()
defer c.lock.Unlock()
c.values[key] = value
}
func (c *concurrentMap) get(key string) (string, bool) {
c.lock.RLock()
defer c.lock.RUnlock()
if val, ok := c.values[key]; ok {
return val, true
}
return "", false
}