mirror of https://github.com/k3s-io/k3s
Merge pull request #76245 from Huang-Wei/cleanup-provider-RLock
scheduler: tweak scheduler factory mutexk3s-v1.15.3
commit
b9fd4cb150
|
@ -77,7 +77,7 @@ type PriorityConfigFactory struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
schedulerFactoryMutex sync.Mutex
|
schedulerFactoryMutex sync.RWMutex
|
||||||
|
|
||||||
// maps that hold registered algorithm types
|
// maps that hold registered algorithm types
|
||||||
fitPredicateMap = make(map[string]FitPredicateFactory)
|
fitPredicateMap = make(map[string]FitPredicateFactory)
|
||||||
|
@ -139,7 +139,6 @@ func RemovePredicateKeyFromAlgorithmProviderMap(key string) {
|
||||||
for _, provider := range algorithmProviderMap {
|
for _, provider := range algorithmProviderMap {
|
||||||
provider.FitPredicateKeys.Delete(key)
|
provider.FitPredicateKeys.Delete(key)
|
||||||
}
|
}
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// InsertPredicateKeyToAlgoProvider insert a fit predicate key to algorithmProvider.
|
// InsertPredicateKeyToAlgoProvider insert a fit predicate key to algorithmProvider.
|
||||||
|
@ -376,8 +375,8 @@ func buildScoringFunctionShapeFromRequestedToCapacityRatioArguments(arguments *s
|
||||||
|
|
||||||
// IsPriorityFunctionRegistered is useful for testing providers.
|
// IsPriorityFunctionRegistered is useful for testing providers.
|
||||||
func IsPriorityFunctionRegistered(name string) bool {
|
func IsPriorityFunctionRegistered(name string) bool {
|
||||||
schedulerFactoryMutex.Lock()
|
schedulerFactoryMutex.RLock()
|
||||||
defer schedulerFactoryMutex.Unlock()
|
defer schedulerFactoryMutex.RUnlock()
|
||||||
_, ok := priorityFunctionMap[name]
|
_, ok := priorityFunctionMap[name]
|
||||||
return ok
|
return ok
|
||||||
}
|
}
|
||||||
|
@ -397,8 +396,8 @@ func RegisterAlgorithmProvider(name string, predicateKeys, priorityKeys sets.Str
|
||||||
|
|
||||||
// GetAlgorithmProvider should not be used to modify providers. It is publicly visible for testing.
|
// GetAlgorithmProvider should not be used to modify providers. It is publicly visible for testing.
|
||||||
func GetAlgorithmProvider(name string) (*AlgorithmProviderConfig, error) {
|
func GetAlgorithmProvider(name string) (*AlgorithmProviderConfig, error) {
|
||||||
schedulerFactoryMutex.Lock()
|
schedulerFactoryMutex.RLock()
|
||||||
defer schedulerFactoryMutex.Unlock()
|
defer schedulerFactoryMutex.RUnlock()
|
||||||
|
|
||||||
provider, ok := algorithmProviderMap[name]
|
provider, ok := algorithmProviderMap[name]
|
||||||
if !ok {
|
if !ok {
|
||||||
|
|
Loading…
Reference in New Issue