mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 19:56:01 +00:00
Merge pull request #76252 from goodluckbot/pod-backoff-rwmutex
Change Mutex to RWMutex for pod backoff
This commit is contained in:
commit
db1ab237bf
@ -26,7 +26,7 @@ import (
|
||||
// PodBackoffMap is a structure that stores backoff related information for pods
|
||||
type PodBackoffMap struct {
|
||||
// lock for performing actions on this PodBackoffMap
|
||||
lock sync.Mutex
|
||||
lock sync.RWMutex
|
||||
// initial backoff duration
|
||||
initialDuration time.Duration
|
||||
// maximal backoff duration
|
||||
@ -49,8 +49,8 @@ func NewPodBackoffMap(initialDuration, maxDuration time.Duration) *PodBackoffMap
|
||||
|
||||
// GetBackoffTime returns the time that nsPod completes backoff
|
||||
func (pbm *PodBackoffMap) GetBackoffTime(nsPod ktypes.NamespacedName) (time.Time, bool) {
|
||||
pbm.lock.Lock()
|
||||
defer pbm.lock.Unlock()
|
||||
pbm.lock.RLock()
|
||||
defer pbm.lock.RUnlock()
|
||||
if _, found := pbm.podAttempts[nsPod]; found == false {
|
||||
return time.Time{}, false
|
||||
}
|
||||
@ -63,8 +63,8 @@ func (pbm *PodBackoffMap) GetBackoffTime(nsPod ktypes.NamespacedName) (time.Time
|
||||
// TryBackoffAndWait tries to perform backoff for a non-preempting pod.
|
||||
// it is invoked from factory.go if util.PodPriorityEnabled() returns false.
|
||||
func (pbm *PodBackoffMap) TryBackoffAndWait(nsPod ktypes.NamespacedName, stop <-chan struct{}) bool {
|
||||
pbm.lock.Lock()
|
||||
defer pbm.lock.Unlock()
|
||||
pbm.lock.RLock()
|
||||
defer pbm.lock.RUnlock()
|
||||
backoffDuration := pbm.calculateBackoffDuration(nsPod)
|
||||
select {
|
||||
case <-time.After(backoffDuration):
|
||||
|
Loading…
Reference in New Issue
Block a user