strategy.go 494 B

123456789101112131415161718192021222324252627
  1. package cache
  2. import (
  3. "sync"
  4. "github.com/710leo/urlooker/dataobj"
  5. )
  6. type SafeStrategyMap struct {
  7. sync.RWMutex
  8. M map[int64]dataobj.Strategy
  9. }
  10. var StrategyMap = &SafeStrategyMap{M: make(map[int64]dataobj.Strategy)}
  11. func (this *SafeStrategyMap) ReInit(m map[int64]dataobj.Strategy) {
  12. this.Lock()
  13. defer this.Unlock()
  14. this.M = m
  15. }
  16. func (this *SafeStrategyMap) Get(key int64) (dataobj.Strategy, bool) {
  17. this.RLock()
  18. defer this.RUnlock()
  19. s, exists := this.M[key]
  20. return s, exists
  21. }