Unverified Commit b9fd4cb1 authored by Kubernetes Prow Robot's avatar Kubernetes Prow Robot Committed by GitHub

Merge pull request #76245 from Huang-Wei/cleanup-provider-RLock

scheduler: tweak scheduler factory mutex
parents 96005559 8f87f580
...@@ -77,7 +77,7 @@ type PriorityConfigFactory struct { ...@@ -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) { ...@@ -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 ...@@ -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 ...@@ -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 {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment