Fix: a shared fastSingle.Do() may cause providers untouched (#2378)

This commit is contained in:
wwqgtxx
2022-11-04 13:11:01 +08:00
committed by GitHub
parent c8bc11d61d
commit 19b7c7f52a
4 changed files with 16 additions and 10 deletions

View File

@ -11,14 +11,19 @@ const (
defaultGetProxiesDuration = time.Second * 5
)
func touchProviders(providers []provider.ProxyProvider) {
for _, provider := range providers {
provider.Touch()
}
}
func getProvidersProxies(providers []provider.ProxyProvider, touch bool) []C.Proxy {
proxies := []C.Proxy{}
for _, provider := range providers {
if touch {
proxies = append(proxies, provider.ProxiesWithTouch()...)
} else {
proxies = append(proxies, provider.Proxies()...)
provider.Touch()
}
proxies = append(proxies, provider.Proxies()...)
}
return proxies
}