mirror of
https://github.com/v2fly/v2ray-core.git
synced 2025-02-20 23:47:21 -05:00
fix(router): panic caused by concurrent map read and write (#2678)
This commit is contained in:
parent
88b5b551c0
commit
87155bfc71
@ -4,6 +4,7 @@ import (
|
||||
"regexp"
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync"
|
||||
)
|
||||
|
||||
type weightScaler func(value, weight float64) float64
|
||||
@ -26,10 +27,13 @@ type WeightManager struct {
|
||||
cache map[string]float64
|
||||
scaler weightScaler
|
||||
defaultWeight float64
|
||||
mu sync.Mutex
|
||||
}
|
||||
|
||||
// Get gets the weight of specified tag
|
||||
func (s *WeightManager) Get(tag string) float64 {
|
||||
s.mu.Lock()
|
||||
defer s.mu.Unlock()
|
||||
weight, ok := s.cache[tag]
|
||||
if ok {
|
||||
return weight
|
||||
|
Loading…
x
Reference in New Issue
Block a user