24 lines
333 B
Go
24 lines
333 B
Go
package main
|
|
|
|
import "sync"
|
|
|
|
type Counters struct {
|
|
mu sync.RWMutex
|
|
m map[string]int
|
|
}
|
|
|
|
func (c *Counters) Load(key string) (int, bool) {
|
|
c.mu.RLock()
|
|
defer c.mu.RUnlock()
|
|
|
|
value, found := c.m[key]
|
|
return value, found
|
|
}
|
|
|
|
func (c *Counters) Store(key string, value int) {
|
|
c.mu.Lock()
|
|
defer c.mu.Unlock()
|
|
|
|
c.m[key] = value
|
|
}
|